public IRelatedNodeItemViewModel Create(IModelNode modelNode) { var symbol = (ISymbol)modelNode.Payload; return(new RelatedNodeItemViewModel( modelNode.Id, _roslynSymbolTranslator.GetName(symbol), _roslynSymbolTranslator.GetFullName(symbol), _roslynSymbolTranslator.GetStereotype(symbol), _roslynSymbolTranslator.GetIsStatic(symbol))); }
private IModelNode GetOrAddNode([NotNull] ISymbol symbol) { using (_asyncLock.Lock()) { return(_modelService.LatestModel.TryGetNodeByPayload(symbol).Match( some => some, () => _modelService.AddNode( _roslynSymbolTranslator.GetName(symbol), _roslynSymbolTranslator.GetStereotype(symbol), symbol))); } }