public IReadOnlyCollection <SolutionProjectReference> RemoveReferences(SolutionModeConfiguration modeConfiguration)
        {
            var projectReferenceAssemblyNames = modeConfiguration.ProjectReferenceConfigurations.Select(f => f.AssemblyName).ToList();

            var removedReferences = SolutionProjectReferences.RemoveReferencesWithStartingNamespace(projectReferenceAssemblyNames);

            return(removedReferences);
        }
        private IReadOnlyCollection <BuildableProject> SearchProjects(SolutionModeConfiguration configuration)
        {
            var directory   = _pathProxy.GetDirectoryName(configuration.SolutionFilePath);
            var csprojFiles = _directoryProxy.GetFiles(directory, "*.csproj");
            var projects    = (IReadOnlyCollection <BuildableProject>)csprojFiles.Select(f => new BuildableProject(f)).ToList();

            return(projects);
        }
        public SolutionModeConfiguration Save(SolutionModeConfiguration model)
        {
            var entity   = _mapper.Map <SolutionModeConfigurationEntity>(model);
            var jsonData = JsonConvert.SerializeObject(entity);
            var filePath = CreateFilePath(model.Id);

            _fileProxy.WriteAllText(filePath, jsonData);
            return(Load(model.Id));
        }
Esempio n. 4
0
        public SolutionModeConfiguration Create(
            string id,
            string configurationName,
            string solutionFilePath,
            IReadOnlyCollection <ProjectReferenceConfiguration> projectReferenceConfigurations)
        {
            if (string.IsNullOrEmpty(id))
            {
                id = Guid.NewGuid().ToString();
            }

            var result = new SolutionModeConfiguration(id, configurationName, solutionFilePath, projectReferenceConfigurations);

            return(result);
        }
        public SolutionSwitchResult SwitchSolutionMode(SolutionModeConfiguration configuration)
        {
            var solutionConfigFile         = _solutionConfigurationFileFactory.Create(configuration.SolutionFilePath);
            var removedReferences          = solutionConfigFile.RemoveReferences(configuration);
            var switchedProjectConfigFiles = new List <ProjectConfigurationFile>();

            foreach (var projectReferenceConfiguration in configuration.ProjectReferenceConfigurations)
            {
                var projectConfigFile = _projectConfigurationFileFactory.Create(projectReferenceConfiguration.AbsoluteProjectFilePath);
                SubstituteProjectConfigReferences(projectConfigFile, removedReferences);
                switchedProjectConfigFiles.Add(projectConfigFile);
            }

            var result = new SolutionSwitchResult(solutionConfigFile, switchedProjectConfigFiles);

            return(result);
        }
        public Task <IReadOnlyCollection <BuildableProject> > SearchProjectsAsync(SolutionModeConfiguration configuration)
        {
            var result = Task.Run(() => SearchProjects(configuration));

            return(result);
        }