diff --git a/src/Onion.SolutionParser.Parser/GlobalSectionParser.cs b/src/Onion.SolutionParser.Parser/GlobalSectionParser.cs index 861c677..3728fdb 100644 --- a/src/Onion.SolutionParser.Parser/GlobalSectionParser.cs +++ b/src/Onion.SolutionParser.Parser/GlobalSectionParser.cs @@ -14,7 +14,7 @@ public GlobalSectionParser(string solutionContents) : base (solutionContents) } - public new IEnumerable Parse() + public override IEnumerable Parse() { var match = GlobalPattern.Match(SolutionContents); while (match.Success) diff --git a/src/Onion.SolutionParser.Parser/HeaderParser.cs b/src/Onion.SolutionParser.Parser/HeaderParser.cs new file mode 100644 index 0000000..f794d27 --- /dev/null +++ b/src/Onion.SolutionParser.Parser/HeaderParser.cs @@ -0,0 +1,35 @@ +using System.Collections.Generic; +using System.IO; + +namespace Onion.SolutionParser.Parser +{ + public class HeaderParser + { + private readonly string _solutionContents; + + public HeaderParser(string solutionContents) + { + _solutionContents = solutionContents; + } + + public IEnumerable Parse() + { + var result = new List(); + using (var sr = new StringReader(_solutionContents)) + { + var line = sr.ReadLine(); + while (line != null) + { + if (line.TrimStart().StartsWith("Project(") || line.TrimStart().StartsWith("Global(")) + { + break; + } + result.Add(line); + line = sr.ReadLine(); + } + } + return result; + } + + } +} diff --git a/src/Onion.SolutionParser.Parser/ISolutionRenderer.cs b/src/Onion.SolutionParser.Parser/ISolutionRenderer.cs new file mode 100644 index 0000000..b147b25 --- /dev/null +++ b/src/Onion.SolutionParser.Parser/ISolutionRenderer.cs @@ -0,0 +1,7 @@ +namespace Onion.SolutionParser.Parser +{ + public interface ISolutionRenderer + { + string Render(); + } +} diff --git a/src/Onion.SolutionParser.Parser/Model/ISolution.cs b/src/Onion.SolutionParser.Parser/Model/ISolution.cs index 8b2dd96..92e319b 100644 --- a/src/Onion.SolutionParser.Parser/Model/ISolution.cs +++ b/src/Onion.SolutionParser.Parser/Model/ISolution.cs @@ -4,6 +4,7 @@ namespace Onion.SolutionParser.Parser.Model { public interface ISolution { + IEnumerable Header { get; } IEnumerable Global { get; } IEnumerable Projects { get; } } diff --git a/src/Onion.SolutionParser.Parser/Model/Solution.cs b/src/Onion.SolutionParser.Parser/Model/Solution.cs index 69dc907..6927213 100644 --- a/src/Onion.SolutionParser.Parser/Model/Solution.cs +++ b/src/Onion.SolutionParser.Parser/Model/Solution.cs @@ -4,6 +4,7 @@ namespace Onion.SolutionParser.Parser.Model { public class Solution : ISolution { + public IEnumerable Header { get; set; } public IEnumerable Global { get; set; } public IEnumerable Projects { get; set; } } diff --git a/src/Onion.SolutionParser.Parser/Onion.SolutionParser.Parser.csproj b/src/Onion.SolutionParser.Parser/Onion.SolutionParser.Parser.csproj index 90fc6e3..591c590 100644 --- a/src/Onion.SolutionParser.Parser/Onion.SolutionParser.Parser.csproj +++ b/src/Onion.SolutionParser.Parser/Onion.SolutionParser.Parser.csproj @@ -40,8 +40,10 @@ + + @@ -52,6 +54,7 @@ +