Esempio n. 1
0
        private OpenApiUrlSpaceNode Attach(IEnumerable <string> segments, OpenApiPathItem pathItem, string layer)
        {
            var segment = segments.FirstOrDefault();

            if (string.IsNullOrEmpty(segment))
            {
                if (PathItem == null)
                {
                    PathItem = pathItem;
                    Layer    = layer;
                }
                return(this);
            }

            // If the child segment has already been defined, then insert into it
            if (Children.ContainsKey(segment))
            {
                return(Children[segment].Attach(segments.Skip(1), pathItem, layer));
            }
            else
            {
                var node = new OpenApiUrlSpaceNode(segment);
                Children[segment] = node;
                return(node.Attach(segments.Skip(1), pathItem, layer));
            }
        }
Esempio n. 2
0
        public static OpenApiUrlSpaceNode Create(OpenApiDocument doc, string layer)
        {
            OpenApiUrlSpaceNode root = null;

            var paths = doc?.Paths;

            if (paths != null)
            {
                root = new OpenApiUrlSpaceNode("");

                foreach (var path in paths)
                {
                    root.Attach(path.Key, path.Value, layer);
                }
            }
            return(root);
        }