Example #1
0
        void ProcLine(string line)
        {
            var lineType = DeterminLineType(line);

            switch (lineType)
            {
            case LineType.StartProject:
                ProcStartProject(line);
                break;

            case LineType.EndProject:
                this.currentProject    = null;
                this.SolutionFileState = State.NotInProject;
                break;

            case LineType.StartDependencyList:
                this.SolutionFileState = State.InProjectDependencies;
                break;

            case LineType.EndDependencyList:
                this.SolutionFileState = State.InProject;
                break;

            case LineType.DependencyLine:
                ProcDependencyLine(line);
                break;
            }
        }
Example #2
0
        void ProcStartProject(string line)
        {
            var match = ProjectLineRegex.Match(line);

            if (match.Groups.Count == 5)
            {
                if (match.Groups[1].Value.ToUpperInvariant() == SolutionFolderId)
                {
                    this.SolutionFileState = State.InSolutionFolder;
                    return;
                }
                this.currentProject = new ProjectFileReference()
                {
                    Id       = match.Groups[4].Value.ToUpperInvariant(),
                    Name     = match.Groups[2].Value,
                    FilePath = XPlatHelper.FullyNormalizePath(this.SolutionFile.Directory, match.Groups[3].Value)
                };
                this.SolutionFile.ProjectFiles.Add(this.currentProject);
            }

            this.SolutionFileState = State.InProject;
        }