private TagViewModel AddTagInternal(ReferenceDescription tag, TagViewModel parentTagViewModel) { var tagViewModel = new TagViewModel(tag); if (parentTagViewModel != null) tagViewModel.Path = parentTagViewModel.Path + "/" + tagViewModel.Address; if (Subscription.MonitoredItems.Any(x => x.NodeId.ToString() == tagViewModel.Address)) { tagViewModel.IsTagUsed = true; tagViewModel.IsExpanded = true; tagViewModel.ExpandToThis(); } /*tagViewModel.Path = parentTagViewModel == null ? tagViewModel.Tag.DisplayName.ToString() : parentTagViewModel.Path + tagViewModel.Tag.DisplayName.ToString();*/ if (parentTagViewModel != null) parentTagViewModel.AddChild(tagViewModel); if (tag != null) foreach (var childTag in Session.Browse(new NodeId(tag.NodeId), null)) AddTagInternal(childTag, tagViewModel); else foreach (var childTag in Session.Browse(null, null)) AddTagInternal(childTag, tagViewModel); return tagViewModel; }