private void OnFolderSelected(Item item) { if (item is DirectoryItem directory) { PathItems.Add(directory); Items = new ObservableCollection <Item>(_provider.GetItems(directory.Path)); } }
public void AddPathItem(object expression, OpenApiPathItem pathItem) { if (expression == null) { throw new ArgumentNullException(nameof(expression)); } if (pathItem == null) { throw new ArgumentNullException(nameof(pathItem)); } if (PathItems == null) { PathItems = new Dictionary <object, OpenApiPathItem>(); } PathItems.Add(expression, pathItem); }
/// <summary> /// Assembles the constituent properties of an <see cref="OpenApiUrlTreeNode"/> node. /// </summary> /// <param name="segments">IEnumerable subdirectories of a relative path.</param> /// <param name="pathItem">Path Item object that describes the operations available on an OpenAPI path.</param> /// <param name="label">A name tag for labelling the <see cref="OpenApiUrlTreeNode"/> node.</param> /// <param name="currentPath">The relative path of a node.</param> /// <returns>An <see cref="OpenApiUrlTreeNode"/> node with all constituent properties assembled.</returns> private OpenApiUrlTreeNode Attach(IEnumerable <string> segments, OpenApiPathItem pathItem, string label, string currentPath) { var segment = segments.FirstOrDefault(); if (string.IsNullOrEmpty(segment)) { if (PathItems.ContainsKey(label)) { throw new ArgumentException("A duplicate label already exists for this node.", nameof(label)); } Path = currentPath; PathItems.Add(label, pathItem); return(this); } // If the child segment has already been defined, then insert into it if (Children.ContainsKey(segment)) { var newPath = currentPath + PathSeparator + segment; return(Children[segment].Attach(segments: segments.Skip(1), pathItem: pathItem, label: label, currentPath: newPath)); } else { var newPath = currentPath + PathSeparator + segment; var node = new OpenApiUrlTreeNode(segment) { Path = newPath }; Children[segment] = node; return(node.Attach(segments: segments.Skip(1), pathItem: pathItem, label: label, currentPath: newPath)); } }
/// <summary> /// Add a <see cref="OpenApiPathItem"/> into the <see cref="PathItems"/>. /// </summary> /// <param name="expression">The runtime expression.</param> /// <param name="pathItem">The path item.</param> public void AddPathItem(RuntimeExpression expression, OpenApiPathItem pathItem) { if (expression == null) { throw Error.ArgumentNull(nameof(expression)); } if (pathItem == null) { throw Error.ArgumentNull(nameof(pathItem)); } if (PathItems == null) { PathItems = new Dictionary <RuntimeExpression, OpenApiPathItem>(); } PathItems.Add(expression, pathItem); }
public void AddPathItem(string key, PathItem pathItem) { PathItems.Add(key, pathItem); }