private Func <Configuration, bool> GetConfigurationFilter(PropertyMarkerAction action) { if (action.ApplyForEverySolutionPlatformInCurrentSolutionConfiguration) { return(c => c.SolutionConfiguration == configurationManager.ActiveSolutionConfiguration); } if (action.ApplyForSelectedSolutionPlatformInCurrentSolutionConfiguration != null) { return(c => c.SolutionConfiguration == configurationManager.ActiveSolutionConfiguration && c.SolutionPlatform == action.ApplyForSelectedSolutionPlatformInCurrentSolutionConfiguration); } if (action.ApplyForEverySolutionConfigurationInCurrentSolutionPlatform) { return(c => c.SolutionPlatform == configurationManager.ActiveSolutionPlatform); } if (action.ApplyForSelectedSolutionConfigurationInCurrentSolutionPlatform != null) { return(c => c.SolutionConfiguration == action.ApplyForSelectedSolutionConfigurationInCurrentSolutionPlatform && c.SolutionPlatform == configurationManager.ActiveSolutionPlatform); } if (action.ApplyForEverySolutionConfigurationAndPlatform) { return(_ => true); } throw new ArgumentException("action"); }
private IEnumerable <Project> GetProjectsToApplyActionFor(PropertyMarkerAction action) { if (action.Project == null) { return(configurationManager.Projects); } return(new[] { action.Project }); }
private void CallCommand(PropertyMarkerAction action) { action.Project = Project; if (Command != null) { Command.Execute(action); } }
private void ApplyAction(PropertyMarkerAction action, Func <Project, Configuration, bool> canApplyAction, Action <Project, Configuration> applyAction) { var configurationFilter = GetConfigurationFilter(action); IEnumerable <Project> projects = GetProjectsToApplyActionFor(action); foreach (Project project in projects) { var configurations = project.AvailableConfigurations.Where(configurationFilter); ApplyAction(configurations, configuration => canApplyAction(project, configuration), configuration => applyAction(project, configuration)); } }
public void SetShouldBuildProjects(PropertyMarkerAction action) => ApplyAction(action, (project, configuration) => configuration.IsBuildable, (project, configuration) => configuration.ShouldBuild = project.ActiveConfiguration.ShouldBuild);
public void SetProjectsPlatform(PropertyMarkerAction action) => ApplyAction(action, (project, configuration) => configuration.AvailableProjectPlatforms. Contains(project.ActiveConfiguration.ProjectPlatform), (project, configuration) => configuration.ProjectPlatform = project.ActiveConfiguration.ProjectPlatform);
public void SetProjectsConfiguration(PropertyMarkerAction action) => ApplyAction(action, (project, configuration) => configuration.AvailableProjectConfigurations. Contains(project.ActiveConfiguration.ProjectConfiguration), (project, configuration) => configuration.ProjectConfiguration = project.ActiveConfiguration.ProjectConfiguration);
public void SetShouldDeployProjects(PropertyMarkerAction action) => ApplyAction(action, (project, configuration) => configuration.IsDeployable, (project, configuration) => configuration.ShouldDeploy = project.ActiveConfiguration.ShouldDeploy);
private void CallCommand(PropertyMarkerAction action) { action.Project = Project; if (Command != null) Command.Execute(action); }
private Func<Configuration, bool> GetConfigurationFilter(PropertyMarkerAction action) { if (action.ApplyForEverySolutionPlatformInCurrentSolutionConfiguration) return c => c.SolutionConfiguration == configurationManager.ActiveSolutionConfiguration; if (action.ApplyForSelectedSolutionPlatformInCurrentSolutionConfiguration != null) return c => c.SolutionConfiguration == configurationManager.ActiveSolutionConfiguration && c.SolutionPlatform == action.ApplyForSelectedSolutionPlatformInCurrentSolutionConfiguration; if (action.ApplyForEverySolutionConfigurationInCurrentSolutionPlatform) return c => c.SolutionPlatform == configurationManager.ActiveSolutionPlatform; if (action.ApplyForSelectedSolutionConfigurationInCurrentSolutionPlatform != null) return c => c.SolutionConfiguration == action.ApplyForSelectedSolutionConfigurationInCurrentSolutionPlatform && c.SolutionPlatform == configurationManager.ActiveSolutionPlatform; if (action.ApplyForEverySolutionConfigurationAndPlatform) return delegate { return true; }; throw new ArgumentException("action"); }
private IEnumerable<Project> GetProjectsToApplyActionFor(PropertyMarkerAction action) { if (action.Project == null) return configurationManager.Projects; return new[] { action.Project }; }
private void ApplyAction(PropertyMarkerAction action, Func<Project, Configuration, bool> canApplyAction, Action<Project, Configuration> applyAction) { var configurationFilter = GetConfigurationFilter(action); IEnumerable<Project> projects = GetProjectsToApplyActionFor(action); foreach (Project project in projects) { var configurations = project.AvailableConfigurations.Where(configurationFilter); ApplyAction(configurations, configuration => canApplyAction(project, configuration), configuration => applyAction(project, configuration)); } }
public void SetShouldDeployProjects(PropertyMarkerAction action) { ApplyAction(action, (project, configuration) => configuration.IsDeployable, (project, configuration) => configuration.ShouldDeploy = project.ActiveConfiguration.ShouldDeploy); }
public void SetShouldBuildProjects(PropertyMarkerAction action) { ApplyAction(action, (project, configuration) => configuration.IsBuildable, (project, configuration) => configuration.ShouldBuild = project.ActiveConfiguration.ShouldBuild); }
public void SetProjectsPlatform(PropertyMarkerAction action) { ApplyAction(action, (project, configuration) => configuration.AvailableProjectPlatforms. Contains(project.ActiveConfiguration.ProjectPlatform), (project, configuration) => configuration.ProjectPlatform = project.ActiveConfiguration.ProjectPlatform); }
public void SetProjectsConfiguration(PropertyMarkerAction action) { ApplyAction(action, (project, configuration) => configuration.AvailableProjectConfigurations. Contains(project.ActiveConfiguration.ProjectConfiguration), (project, configuration) => configuration.ProjectConfiguration = project.ActiveConfiguration.ProjectConfiguration); }