Example #1
0
        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));
        }
Example #3
0
        public override async Task <bool> IsEnabledAsync()
        {
            var maybeSymbol = await RoslynWorkspaceProvider.TryGetCurrentSymbolAsync();

            return(maybeSymbol.Select(RoslynBasedModelService.CanAddSymbol).Match(i => i, () => false));
        }
 public override async Task <bool> IsEnabledAsync() => (await RoslynWorkspaceProvider.TryGetCurrentSymbolAsync()).HasValue;