PostmanFolder GetApiControllerDescription(IGrouping <Type, ApiDescription> apiDescriptionsByControllerGroup, PostmanCollection postManCollection) { var controllerName = apiDescriptionsByControllerGroup.Key.Name.Replace("Controller", string.Empty); var postManFolder = new PostmanFolder { Id = Guid.NewGuid(), CollectionId = postManCollection.Id, Name = controllerName, Description = string.Format("Api Methods for {0}", controllerName), CollectionName = "api", Order = new Collection <Guid>() }; var apiDescriptions = apiDescriptionsByControllerGroup .OrderBy(description => description.HttpMethod, new HttpMethodComparator()) .ThenBy(description => description.RelativePath) .ThenBy(description => description.Documentation == null ? string.Empty : description.Documentation.ToString(CultureInfo.InvariantCulture)); foreach (var apiDescription in apiDescriptions) { var request = GetApiActionDescription(apiDescription, postManCollection); request.Time = postManCollection.Timestamp; request.CollectionId = postManCollection.Id; postManFolder.Order.Add(request.Id); // add to the folder postManCollection.Requests.Add(request); } return(postManFolder); }
private void AddToFolders(PostmanCollection collection) { if (!collection.Requests.Any()) { return; } foreach (var request in collection.Requests) { if (!SupportFolders || string.IsNullOrEmpty(request.Folder)) { collection.Order.Add(request.Id); } else { var folder = collection.Folders.FirstOrDefault(f => f.Name.Equals(request.Folder)); if (folder == null) { folder = new PostmanFolder { CollectionId = collection.Id, CollectionName = collection.Name, Id = Guid.NewGuid().ToString(), Name = request.Folder, Order = new List <string> { request.Id } }; collection.Folders.Add(folder); } else { folder.Order.Add(request.Id); } } } }