private async Task ProjectUpdatesCoreAsync(object state)
        {
            var update = (ProjectSnapshotUpdateContext)state;

            OnProcessingUpdate();

            var snapshot = new DefaultProjectSnapshot(update.HostProject, update.WorkspaceProject, update.Version);
            var result   = await _tagHelperResolver.GetTagHelpersAsync(snapshot, CancellationToken.None);

            update.TagHelpers = result.Descriptors;
        }
Exemple #2
0
        private async Task ProjectUpdatesCoreAsync(object state)
        {
            var update = (ProjectSnapshotUpdateContext)state;

            // We'll have more things to process here, but for now we're just hardcoding the configuration.

            var configuration = await _configurationFactory.GetConfigurationAsync(update.UnderlyingProject);

            update.Configuration = configuration;

            var result = await _tagHelperResolver.GetTagHelpersAsync(update.UnderlyingProject);

            update.TagHelpers = result.Descriptors;
        }
Exemple #3
0
        private async void LoadProjectInfoAsync(ProjectViewModel projectViewModel)
        {
            try
            {
                CurrentProjectInfo = null;
                IsLoading          = true;

                var solution = _workspace.CurrentSolution;
                var project  = solution.GetProject(projectViewModel.Id);

                var documents     = GetCshtmlDocuments(project);
                var configuration = await _configurationFactory.GetConfigurationAsync(project);

                var directives = await _directiveResolver.GetRazorEngineDirectivesAsync(_workspace, project);

                var assemblyFilters = project.MetadataReferences
                                      .Select(reference => reference.Display)
                                      .Select(filter => Path.GetFileNameWithoutExtension(filter));
                var projectFilters   = project.AllProjectReferences.Select(filter => solution.GetProject(filter.ProjectId).AssemblyName);
                var resolutionResult = await _tagHelperResolver.GetTagHelpersAsync(project);

                var files = GetCshtmlDocuments(project);

                CurrentProjectInfo = new ProjectInfoViewModel()
                {
                    Assemblies = new ObservableCollection <AssemblyViewModel>(configuration.Assemblies.Select(a => new AssemblyViewModel(a))),
                    Directives = new ObservableCollection <DirectiveViewModel>(directives.Select(d => new DirectiveViewModel(d))),
                    Documents  = new ObservableCollection <DocumentViewModel>(documents.Select(d => new DocumentViewModel(d))),
                    TagHelpers = new ObservableCollection <TagHelperViewModel>(resolutionResult.Descriptors.Select(t => new TagHelperViewModel(t))),
                };
            }
            catch (Exception ex)
            {
                _errorHandler.Invoke(ex);
            }

            IsLoading = false;
        }