示例#1
0
 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");
 }
示例#2
0
 private IEnumerable <Project> GetProjectsToApplyActionFor(PropertyMarkerAction action)
 {
     if (action.Project == null)
     {
         return(configurationManager.Projects);
     }
     return(new[] { action.Project });
 }
示例#3
0
 private void CallCommand(PropertyMarkerAction action)
 {
     action.Project = Project;
     if (Command != null)
     {
         Command.Execute(action);
     }
 }
示例#4
0
        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));
            }
        }
示例#5
0
 public void SetShouldBuildProjects(PropertyMarkerAction action)
 => ApplyAction(action, (project, configuration) => configuration.IsBuildable,
                (project, configuration) => configuration.ShouldBuild =
                    project.ActiveConfiguration.ShouldBuild);
示例#6
0
 public void SetProjectsPlatform(PropertyMarkerAction action)
 => ApplyAction(action, (project, configuration) =>
                configuration.AvailableProjectPlatforms.
                Contains(project.ActiveConfiguration.ProjectPlatform),
                (project, configuration) => configuration.ProjectPlatform =
                    project.ActiveConfiguration.ProjectPlatform);
示例#7
0
 public void SetProjectsConfiguration(PropertyMarkerAction action)
 => ApplyAction(action, (project, configuration) =>
                configuration.AvailableProjectConfigurations.
                Contains(project.ActiveConfiguration.ProjectConfiguration),
                (project, configuration) => configuration.ProjectConfiguration =
                    project.ActiveConfiguration.ProjectConfiguration);
示例#8
0
 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);
 }