public override async Task ExecuteAsync() { var symbol = RoslynBasedModelService.GetSymbol(_diagramNode.ModelNode); if (await RoslynWorkspaceProvider.HasSourceAsync(symbol)) { await RoslynWorkspaceProvider.ShowSourceAsync(symbol); } else { DiagramWindowService.ShowPopupMessage(NoSourceMessage, NoSourceMessageDuration); } }
protected async Task <Maybe <IModelNode> > TryAddCurrentSymbolToDiagramAsync() { var maybeSymbol = await RoslynWorkspaceProvider.TryGetCurrentSymbolAsync(); if (!maybeSymbol.HasValue) { return(Maybe <IModelNode> .Nothing); } var modelNode = RoslynBasedModelService.GetOrAddNode(maybeSymbol.Value); DiagramService.AddNode(modelNode.Id); return(Maybe.Create(modelNode)); }
private async Task ShowProgressAndUpdateModelAsync() { using (var progressDialog = await HostUiService.CreateProgressDialogAsync("Updating model nodes:")) { progressDialog.ShowWithDelay(); try { await RoslynBasedModelService.UpdateFromSourceAsync(progressDialog.CancellationToken, progressDialog.Progress); } catch (OperationCanceledException) { } } }
private async Task ExtendModelWithRelatedEntitiesAsync( [NotNull] IModelNode modelNode, CancellationToken cancellationToken, IIncrementalProgress progress) { await Task.WhenAll( RoslynBasedModelService.ExtendModelWithRelatedNodesAsync( modelNode, DirectedModelRelationshipTypes.BaseType, cancellationToken, progress, recursive: true), RoslynBasedModelService.ExtendModelWithRelatedNodesAsync( modelNode, DirectedModelRelationshipTypes.Subtype, cancellationToken, progress, recursive: true) ); }
public override async Task ExecuteAsync() { await HostUiService.ShowDiagramWindowAsync(); RoslynBasedModelService.ClearModel(); }