public void Save(Sln solution)
        {
            var solutionContents = _fileSystem.ReadStringFromFile(solution.FileName);
            var solutionBuilder = new StringBuilder();
            var modifiers = new List<ISolutionFileModifier>
            {
                new AddProjectsModifier(solution),
                new AddConfigurationsModifier(solution),
                new AppendLineModifier()
            };

            var lines = SplitSolution(solutionContents);
            lines.Each(line =>
            {
                var filteredModifiers = modifiers.Where(m => m.Matches(line));
                foreach(var m in filteredModifiers)
                {
                    if(!m.Modify(line, solutionBuilder))
                    {
                        break;
                    }
                }
            });

            _fileSystem.WriteStringToFile(solution.FileName, solutionBuilder.ToString());
        }
 public AddProjectsModifier(Sln solution)
 {
     _solution = solution;
 }
 public AddConfigurationsModifier(Sln solution)
 {
     _solution = solution;
 }