/// <summary> /// This method is used to create a project folder item model. /// </summary> /// <param name="client">Contains the <see cref="InspireClient"/> that is used for communication.</param> /// <param name="projectId">Contains the identity of the parent project.</param> /// <param name="model">Contains a <see cref="ProjectFolderItemModel"/> to create.</param> /// <returns>Returns the newly created <see cref="ProjectFolderItemModel"/> object.</returns> public static ProjectFolderItemModel CreateProjectFolder(this InspireClient client, long projectId, ProjectFolderItemModel model) { if (projectId <= 0) { throw new ArgumentNullException(nameof(projectId)); } if (model == null) { throw new ArgumentNullException(nameof(model)); } var request = client.CreateRequest($"/Projects/{projectId}/FolderItems", HttpMethod.Post); return(client.RequestContent <ProjectFolderItemModel, ProjectFolderItemModel>(request, model)); }
/// <summary> /// This method is used to move a project folder to another target folder. /// </summary> /// <param name="client">Contains the <see cref="InspireClient"/> that is used for communication.</param> /// <param name="model">Contains the existing project folder item model to move.</param> /// <param name="projectId">Contains the identity of the parent project.</param> /// <param name="itemId">Contains the identity of the folder item object.</param> /// <param name="targetFolderId">Contains the new target folder of the folder item.</param> /// <returns>Returns the <see cref="ProjectFolderItemModel"/> object.</returns> public static ProjectFolderItemModel MoveProjectFolder(this InspireClient client, ProjectFolderItemModel model, long projectId, string itemId, string targetFolderId = "") { if (projectId <= 0) { throw new ArgumentNullException(nameof(projectId)); } if (string.IsNullOrEmpty(itemId)) { throw new ArgumentNullException(nameof(itemId)); } if (model == null) { throw new ArgumentNullException(nameof(model)); } var request = client.CreateRequest($"/Projects/{projectId}/FolderItems/{itemId}/Move/{targetFolderId}", HttpMethod.Put); return(client.RequestContent <ProjectFolderItemModel, ProjectFolderItemModel>(request, model)); }
/// <summary> /// This method is used to delete a project folder item model. /// </summary> /// <param name="client">Contains the <see cref="InspireClient"/> that is used for communication.</param> /// <param name="projectId">Contains the identity of the parent project.</param> /// <param name="model">Contains the existing <see cref="ProjectFolderItemModel"/> to delete.</param> /// <returns>Returns a boolean value indicating whether the action succeeded or not.</returns> public static bool DeleteProjectFolder(this InspireClient client, long projectId, ProjectFolderItemModel model) { if (projectId <= 0) { throw new ArgumentNullException(nameof(projectId)); } if (model == null) { throw new ArgumentNullException(nameof(model)); } var request = client.CreateRequest($"/Projects/{projectId}/FolderItems/0", HttpMethod.Delete); client.RequestContent(request, model); return(client.HasError); }