private void OnDependenciesChanged(object sender, DependenciesChangedEventArgs e) { if (IsDisposing || IsDisposed) { return; } var nowait = SubmitTreeUpdateAsync( (treeSnapshot, configuredProjectExports, cancellationToken) => { var dependenciesNode = treeSnapshot.Value.Tree; dependenciesNode = CreateOrUpdateSubTreeProviderNode(dependenciesNode, e.Provider, changes: e.Changes, cancellationToken: cancellationToken, catalogs: e.Catalogs); ProjectContextChanged?.Invoke(this, new ProjectContextEventArgs(this, e.Changes)); // TODO We still are getting mismatched data sources and need to figure out better // way of merging, mute them for now and get to it in U1 return(Task.FromResult(new TreeUpdateResult(dependenciesNode, false, null /*GetMergedDataSourceVersions(e)*/))); }); }
/// <summary> /// When project context changed event received from any context, send a global level /// "context changed" event, to notify <see cref="DependenciesGraphProvider"/>. /// </summary> internal void OnProjectContextChanged(object sender, ProjectContextEventArgs e) { var context = e.Context; if (context == null) { return; } ProjectContextChanged?.Invoke(this, e); }
private void OnDependenciesChanged(object sender, DependenciesChangedEventArgs e) { var nowait = SubmitTreeUpdateAsync( (treeSnapshot, configuredProjectExports, cancellationToken) => { var dependenciesNode = treeSnapshot.Value.Tree; dependenciesNode = CreateOrUpdateSubTreeProviderNode(dependenciesNode, e.Provider, changes: e.Changes, cancellationToken: cancellationToken, catalogs: e.Catalogs); ProjectContextChanged?.Invoke(this, new ProjectContextEventArgs(this)); return(Task.FromResult(new TreeUpdateResult(dependenciesNode, false, e.DataSourceVersions))); }); }
private void OnDependenciesChanged(object sender, DependenciesChangedEventArgs e) { var nowait = SubmitTreeUpdateAsync( (treeSnapshot, configuredProjectExports, cancellationToken) => { var dependenciesNode = treeSnapshot.Value.Tree; dependenciesNode = CreateOrUpdateSubTreeProviderNode(dependenciesNode, e.Provider, changes: e.Changes, cancellationToken: cancellationToken, catalogs: e.Catalogs); ProjectContextChanged?.Invoke(this, new ProjectContextEventArgs(this)); // Note: temporary workaround to prevent data sources being out of sync is send null always, // this would stop error dialog, however subscribers could not check for Dependencies tree changes // until real fix is checked it (its fine since there probably should not be any at the moment). return(Task.FromResult(new TreeUpdateResult(dependenciesNode, false, null /*e.DataSourceVersions*/))); }); }