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)); }
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); }