public static ConfigurationPlatform Parse(string source) { var match = Regex.Matches(source, ConfigurationPattern).First(); var platform = new ConfigurationPlatform { Configuration = match.Groups["configuration"].Value, Platform = match.Groups["platform"].Value, Suffix = match.Groups["suffix"].Value }; Guid.TryParse(match.Groups["guid"].Value, out var tmpGuid); platform.ProjectGuid = tmpGuid; return(platform); }
public void Load(Queue <string> sourceLines) { var headerLine = sourceLines.Dequeue()?.Trim(); var headerMatch = Regex.Matches(headerLine, HeaderPattern).First(); Type = Enum.Parse <GlobalSectionType>(headerMatch.Groups["type"].Value); Location = Enum.Parse <SolutionLocation>(headerMatch.Groups["location"].Value); string assignmentLine; while (!"EndGlobalSection".Equals(assignmentLine = sourceLines.Dequeue()?.Trim())) { var lineMatch = Regex.Matches(assignmentLine, PairPattern).First(); // Add the internal pairs var targetConfiguration = ConfigurationPlatform.Parse(lineMatch.Groups["target"].Value); var sourceConfiguration = ConfigurationPlatform.Parse(lineMatch.Groups["source"].Value); ConfigurationPairs[sourceConfiguration] = targetConfiguration; } }