Example #1
0
        /// <summary>
        /// Performs a move on any items that were added based on the previous includes.
        /// </summary>
        public static Task Move(ConfiguredProject configuredProject, IProjectAccessor accessor, ImmutableHashSet <string> previousIncludes, IProjectTree target, OrderingMoveAction action)
        {
            Requires.NotNull(configuredProject, nameof(configuredProject));
            Requires.NotNull(accessor, nameof(accessor));
            Requires.NotNull(previousIncludes, nameof(previousIncludes));
            Requires.NotNull(target, nameof(target));

            return(accessor.OpenProjectForWriteAsync(configuredProject, project =>
            {
                // We do a sanity re-evaluation to absolutely ensure changes were met.
                project.ReevaluateIfNecessary();
                ImmutableArray <ProjectItemElement> addedElements = GetAddedItemElements(previousIncludes, project);

                switch (action)
                {
                case OrderingMoveAction.MoveToTop:
                    TryMoveElementsToTop(project, addedElements, target);
                    break;

                case OrderingMoveAction.MoveAbove:
                    TryMoveElementsAbove(project, addedElements, target);
                    break;

                case OrderingMoveAction.MoveBelow:
                    TryMoveElementsBelow(project, addedElements, target);
                    break;

                default:
                    break;
                }
            }));
        }
        public DependenciesProjectTreeProvider(
            IProjectThreadingService threadingService,
            IProjectAccessor projectAccessor,
            UnconfiguredProject unconfiguredProject,
            DependenciesSnapshotProvider dependenciesSnapshotProvider,
            [Import(ExportContractNames.Scopes.UnconfiguredProject)] IProjectAsynchronousTasksService tasksService,
            IDependencyTreeTelemetryService treeTelemetryService)
            : base(threadingService, unconfiguredProject)
        {
            _projectTreePropertiesProviders = new OrderPrecedenceImportCollection <IProjectTreePropertiesProvider>(
                ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesLast,
                projectCapabilityCheckProvider: unconfiguredProject);

            _viewProviders = new OrderPrecedenceImportCollection <IDependenciesTreeViewProvider>(
                ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesFirst,
                projectCapabilityCheckProvider: unconfiguredProject);

            _dependenciesSnapshotProvider = dependenciesSnapshotProvider;
            _tasksService         = tasksService;
            _projectAccessor      = projectAccessor;
            _treeTelemetryService = treeTelemetryService;

            // Hook this so we can unregister the snapshot change event when the project unloads
            unconfiguredProject.ProjectUnloading += OnUnconfiguredProjectUnloading;

            Task OnUnconfiguredProjectUnloading(object sender, EventArgs args)
            {
                UnconfiguredProject.ProjectUnloading -= OnUnconfiguredProjectUnloading;
                _snapshotEventListener?.Dispose();

                return(Task.CompletedTask);
            }
        }
 public TargetFrameworkProjectConfigurationDimensionProvider(IProjectAccessor projectAccessor)
     : base(
         projectAccessor,
         dimensionName: ConfigurationGeneral.TargetFrameworkProperty,
         propertyName: ConfigurationGeneral.TargetFrameworksProperty)
 {
 }
 public PlatformProjectConfigurationDimensionProvider(IProjectAccessor projectAccessor)
     : base(
         projectAccessor,
         dimensionName: ConfigurationGeneral.PlatformProperty,
         propertyName: "Platforms",
         dimensionDefaultValue: "AnyCPU")
 {
 }
 public PostBuildEventValueProvider(
     IProjectAccessor projectAccessor,
     UnconfiguredProject project)
     : base(projectAccessor,
            project,
            new PostBuildEventHelper())
 {
 }
Example #6
0
 public ConfigurationProjectConfigurationDimensionProvider(IProjectAccessor projectAccessor)
     : base(
         projectAccessor,
         dimensionName: ConfigurationGeneral.ConfigurationProperty,
         propertyName: "Configurations",
         dimensionDefaultValue: "Debug")
 {
 }
Example #7
0
        public SupportedTargetFrameworksEnumProvider(IProjectAccessor projectAccessor, ConfiguredProject configuredProject)
        {
            Requires.NotNull(projectAccessor, nameof(projectAccessor));
            Requires.NotNull(configuredProject, nameof(configuredProject));

            _projectAccessor   = projectAccessor;
            _configuredProject = configuredProject;
        }
Example #8
0
        public PasteOrdering(UnconfiguredProject unconfiguredProject, IProjectAccessor accessor)
        {
            _configuredProject = unconfiguredProject.Services.ActiveConfiguredProjectProvider.ActiveConfiguredProject;
            _accessor          = accessor;

            PasteHandlers   = new OrderPrecedenceImportCollection <IPasteHandler>(projectCapabilityCheckProvider: unconfiguredProject);
            PasteProcessors = new OrderPrecedenceImportCollection <IPasteDataObjectProcessor>(projectCapabilityCheckProvider: unconfiguredProject);
        }
Example #9
0
 public DebugTokenReplacer(IUnconfiguredProjectCommonServices unconfiguredServices, IEnvironmentHelper environmentHelper,
                           IActiveDebugFrameworkServices activeDebugFrameworkService, IProjectAccessor projectAccessor)
 {
     UnconfiguredServices        = unconfiguredServices;
     EnvironmentHelper           = environmentHelper;
     ActiveDebugFrameworkService = activeDebugFrameworkService;
     ProjectAccessor             = projectAccessor;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="BaseProjectConfigurationDimensionProvider"/> class.
        /// </summary>
        /// <param name="projectAccessor">Lock service for the project file.</param>
        /// <param name="dimensionName">Name of the dimension.</param>
        /// <param name="propertyName">Name of the project property containing the dimension values.</param>
        public BaseProjectConfigurationDimensionProvider(IProjectAccessor projectAccessor, string dimensionName, string propertyName)
        {
            Requires.NotNull(projectAccessor, nameof(projectAccessor));

            ProjectAccessor = projectAccessor;
            DimensionName   = dimensionName;
            PropertyName    = propertyName;
        }
 protected AbstractBuildEventValueProvider(
     IProjectAccessor projectAccessor,
     UnconfiguredProject project,
     AbstractBuildEventHelper helper)
 {
     _projectAccessor     = projectAccessor;
     _unconfiguredProject = project;
     _helper = helper;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="BaseProjectConfigurationDimensionProvider"/> class.
        /// </summary>
        /// <param name="projectAccessor">Lock service for the project file.</param>
        /// <param name="dimensionName">Name of the dimension.</param>
        /// <param name="propertyName">Name of the project property containing the dimension values.</param>
        /// <param name="dimensionDefaultValue">The default value of the dimension, for example "AnyCPU".</param>
        protected BaseProjectConfigurationDimensionProvider(IProjectAccessor projectAccessor, string dimensionName, string propertyName, string dimensionDefaultValue = null)
        {
            Requires.NotNull(projectAccessor, nameof(projectAccessor));

            ProjectAccessor       = projectAccessor;
            DimensionName         = dimensionName;
            PropertyName          = propertyName;
            DimensionDefaultValue = dimensionDefaultValue;
        }
Example #13
0
 public AspNetProjectManager(
     IProjectStore <TProject> store,
     IProjectAccessor <TProject> accessor,
     IEnumerable <IValidator <TProject> > validators,
     ILogger <ProjectManager <TProject> > logger,
     ILookupNormalizer <TProject> nameNormalizer,
     IHttpContextAccessor contextAccessor)
     : base(store, accessor, validators, logger, nameNormalizer)
     => _cancel = contextAccessor?.HttpContext?.RequestAborted ?? CancellationToken.None;
Example #14
0
 public ProjectManager(
     IProjectStore <TProject> store,
     IProjectAccessor <TProject> accessor,
     IEnumerable <IValidator <TProject> > validators,
     ILogger <ProjectManager <TProject> > logger,
     ILookupNormalizer <TProject> nameNormalizer)
     : base(store, accessor, validators, logger)
 {
     NameNormalizer = nameNormalizer ?? throw new ArgumentNullException(nameof(nameNormalizer));
 }
Example #15
0
 public TestVisualBasicVSImports(VSLangProj.VSProject vsProject,
                                 IProjectThreadingService threadingService,
                                 IActiveConfiguredValue <ConfiguredProject> activeConfiguredProject,
                                 IProjectAccessor projectAccessor,
                                 IUnconfiguredProjectVsServices unconfiguredProjectVSServices,
                                 TestVisualBasicNamespaceImportsList importsList)
     : base(vsProject, threadingService, activeConfiguredProject, projectAccessor, unconfiguredProjectVSServices, importsList)
 {
     _testImportsList = importsList;
 }
 private VisualBasicVSImports CreateInstance(
     VSLangProj.VSProject vsProject            = null,
     IProjectThreadingService threadingService = null,
     ActiveConfiguredProject <ConfiguredProject> activeConfiguredProject = null,
     IProjectAccessor projectAccessor           = null,
     IUnconfiguredProjectVsServices vsServices  = null,
     VisualBasicNamespaceImportsList importList = null)
 {
     return(new VisualBasicVSImports(vsProject, threadingService, activeConfiguredProject, projectAccessor, vsServices, importList));
 }
        protected AbstractMoveCommand(IPhysicalProjectTree projectTree, SVsServiceProvider serviceProvider, ConfiguredProject configuredProject, IProjectAccessor accessor)
        {
            Requires.NotNull(projectTree, nameof(projectTree));
            Requires.NotNull(serviceProvider, nameof(serviceProvider));
            Requires.NotNull(configuredProject, nameof(configuredProject));
            Requires.NotNull(accessor, nameof(accessor));

            _projectTree       = projectTree;
            _serviceProvider   = serviceProvider;
            _configuredProject = configuredProject;
            _accessor          = accessor;
        }
Example #18
0
        public VisualBasicVSImports(
            [Import(ExportContractNames.VsTypes.CpsVSProject)] VSLangProj.VSProject vsProject,
            IProjectThreadingService threadingService,
            IActiveConfiguredValue <ConfiguredProject> activeConfiguredProject,
            IProjectAccessor projectAccessor,
            IUnconfiguredProjectVsServices unconfiguredProjectVSServices,
            VisualBasicNamespaceImportsList importsList)
        {
            _vsProject = vsProject;
            _activeConfiguredProject       = activeConfiguredProject;
            _projectAccessor               = projectAccessor;
            _threadingService              = threadingService;
            _unconfiguredProjectVSServices = unconfiguredProjectVSServices;
            _importsList = importsList;

            AddEventSource(this);
        }
Example #19
0
        public static IUnconfiguredProjectCommonServices Create(UnconfiguredProject project         = null, IPhysicalProjectTree projectTree    = null, IProjectThreadingService threadingService = null,
                                                                ConfiguredProject configuredProject = null, ProjectProperties projectProperties = null,
                                                                IProjectAccessor projectAccessor    = null)
        {
            var mock = new Mock <IUnconfiguredProjectCommonServices>();

            if (project != null)
            {
                mock.Setup(s => s.Project)
                .Returns(project);
            }

            if (projectTree != null)
            {
                mock.Setup(s => s.ProjectTree)
                .Returns(projectTree);
            }

            if (threadingService != null)
            {
                mock.Setup(s => s.ThreadingService)
                .Returns(threadingService);
            }

            if (configuredProject != null)
            {
                mock.Setup(s => s.ActiveConfiguredProject)
                .Returns(configuredProject);
            }

            if (projectProperties != null)
            {
                mock.Setup(s => s.ActiveConfiguredProjectProperties)
                .Returns(projectProperties);
            }

            if (projectAccessor != null)
            {
                mock.Setup(s => s.ProjectAccessor)
                .Returns(projectAccessor);
            }

            return(mock.Object);
        }
 public PackageRestoreDataSource(
     UnconfiguredProject project,
     IPackageRestoreUnconfiguredInputDataSource dataSource,
     [Import(ExportContractNames.Scopes.UnconfiguredProject)] IProjectAsynchronousTasksService projectAsynchronousTasksService,
     IVsSolutionRestoreService3 solutionRestoreService,
     IFileSystem fileSystem,
     Lazy <IProjectChangeHintSubmissionService> projectChangeHintSubmissionService,
     IProjectAccessor projectAccessor,
     IProjectLogger logger)
     : base(project, synchronousDisposal: true, registerDataSource: false)
 {
     _project    = project;
     _dataSource = dataSource;
     _projectAsynchronousTasksService = projectAsynchronousTasksService;
     _solutionRestoreService          = solutionRestoreService;
     _fileSystem = fileSystem;
     _projectChangeHintSubmissionService = projectChangeHintSubmissionService;
     _projectAccessor = projectAccessor;
     _logger          = logger;
 }
        /// <summary>
        /// Performs a move on any items that were added based on the previous includes.
        /// </summary>
        public static Task MoveAsync(ConfiguredProject configuredProject, IProjectAccessor accessor, ImmutableHashSet <string> previousIncludes, IProjectTree target, OrderingMoveAction action)
        {
            Requires.NotNull(configuredProject, nameof(configuredProject));
            Requires.NotNull(accessor, nameof(accessor));
            Requires.NotNull(previousIncludes, nameof(previousIncludes));
            Requires.NotNull(target, nameof(target));

            return(accessor.OpenProjectForWriteAsync(configuredProject, project =>
            {
                // We do a sanity re-evaluation to absolutely ensure changes were met.
                project.ReevaluateIfNecessary();
                ImmutableArray <ProjectItemElement> addedElements = GetAddedItemElements(previousIncludes, project);

                // TODO: Should the result (success or failure) be ignored?
                _ = action switch
                {
                    OrderingMoveAction.MoveToTop => TryMoveElementsToTop(project, addedElements, target),
                    OrderingMoveAction.MoveAbove => TryMoveElementsAbove(project, addedElements, target),
                    OrderingMoveAction.MoveBelow => TryMoveElementsBelow(project, addedElements, target),
                    _ => false
                };
            }));
Example #22
0
 public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
 {
     if (context != null && context.Instance != null && provider != null)
     {
         IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
         if (edSvc != null)
         {
             IProjectAccessor pa = context.Instance as IProjectAccessor;
             if (pa != null)
             {
                 WebPageDataSet data = value as WebPageDataSet;
                 if (data == null)
                 {
                     data = new WebPageDataSet();
                 }
                 else
                 {
                     data = data.Clone() as WebPageDataSet;
                 }
                 string     dname = string.Empty;
                 IComponent ic    = context.Instance as IComponent;
                 if (ic != null && ic.Site != null)
                 {
                     dname = ic.Site.Name;
                 }
                 DlgWebPageData dlg = new DlgWebPageData();
                 dlg.LoadData(dname, data, pa.Project);
                 if (edSvc.ShowDialog(dlg) == System.Windows.Forms.DialogResult.OK)
                 {
                     value = data;
                 }
             }
         }
     }
     return(value);
 }
Example #23
0
 public PlatformProjectConfigurationDimensionProvider(IProjectAccessor projectAccessor)
     : base(projectAccessor, ConfigurationGeneral.PlatformProperty, "Platforms", "AnyCPU")
 {
 }
        public OrderAddItemHintReceiver(IProjectAccessor accessor)
        {
            Requires.NotNull(accessor, nameof(accessor));

            _accessor = accessor;
        }
 internal abstract AbstractMoveCommand CreateInstance(IPhysicalProjectTree projectTree, Shell.SVsServiceProvider serviceProvider, ConfiguredProject configuredProject, IProjectAccessor accessor);
        internal AbstractMoveCommand CreateAbstractInstance(IPhysicalProjectTree projectTree = null, Shell.SVsServiceProvider serviceProvider = null, ConfiguredProject configuredProject = null, IProjectAccessor accessor = null)
        {
            projectTree       = projectTree ?? IPhysicalProjectTreeFactory.Create();
            serviceProvider   = serviceProvider ?? SVsServiceProviderFactory.Create();
            configuredProject = configuredProject ?? ConfiguredProjectFactory.Create();
            accessor          = accessor ?? IProjectAccessorFactory.Create();

            return(CreateInstance(projectTree, serviceProvider, configuredProject, accessor));
        }
 internal AvoidPersistingProjectGuidStorageProvider(IProjectAccessor projectAccessor, UnconfiguredProject project)
 {
     _projectAccessor = projectAccessor;
     _project         = project;
 }
 override internal AbstractMoveCommand CreateInstance(IPhysicalProjectTree projectTree, Shell.SVsServiceProvider serviceProvider, ConfiguredProject configuredProject, IProjectAccessor accessor)
 {
     return(new MoveDownCommand(projectTree, serviceProvider, configuredProject, accessor));
 }
Example #29
0
 public DebugTokenReplacer(IEnvironmentHelper environmentHelper, IActiveDebugFrameworkServices activeDebugFrameworkService, IProjectAccessor projectAccessor)
 {
     EnvironmentHelper           = environmentHelper;
     ActiveDebugFrameworkService = activeDebugFrameworkService;
     ProjectAccessor             = projectAccessor;
 }
Example #30
0
 public SupportedTargetFrameworksEnumValuesGenerator(IProjectAccessor projectAccessor, ConfiguredProject configuredProject)
 {
     _projectAccessor   = projectAccessor;
     _configuredProject = configuredProject;
 }