/// <summary> /// Create SymbolicLink /// </summary> /// <example> /// { /// "Name":"RemoteFileName", /// "Description":"Description", /// "Zone":{ "Id":"z014766e-8e96-4615-86aa-57132a69843c" }, /// "ConnectorGroup": { "Id":"1" } /// } /// </example> /// <remarks> /// Creates a Symbolic Link /// The body must contain either a "Link" parameter with a fully qualified URI; or use /// FileName + Zone to have sharefile.com attempt to convert the Connector path to an /// URI using a call to the Zone - using ShareFile Hash authentication mode. For active /// clients, it's recommended to make the convertion call to the Zone directly, using /// Items/ByPath=name, retriving the resulting URL, and calling this method with the /// Link parameter.SymbolicLinks must be created as top-level folders - i.e., this call requires /// the parent to be the Item(accountid) element.Zone defines the location of the SymbolicLink target - for example, for /// Network Shares connectors, the SymbolicLink will point to the StorageZone Controller /// that will serve the file browsing requests.The ConnectorGroup parameter indicates the kind of symbolic link - e.g., Network /// Share, or SharePoint. /// </remarks> /// <param name="parentUrl"></param> /// <param name="symlink"></param> /// <param name="overwrite"></param> /// <returns> /// the new SymbolicLink /// </returns> public IQuery<SymbolicLink> CreateSymbolicLink(Uri parentUrl, SymbolicLink symlink, bool overwrite = false) { var sfApiQuery = new ShareFile.Api.Client.Requests.Query<SymbolicLink>(Client); sfApiQuery.Action("SymbolicLink"); sfApiQuery.Uri(parentUrl); sfApiQuery.QueryString("overwrite", overwrite); sfApiQuery.Body = symlink; sfApiQuery.HttpMethod = "POST"; return sfApiQuery; }
/// <summary> /// Update SymbolicLink /// </summary> /// <example> /// { /// "Name":"Name", /// "Description":"Description", /// "Link": "https://server/path" /// } /// </example> /// <remarks> /// Updates a Symbolic Link object /// </remarks> /// <param name="id"></param> /// <param name="symlink"></param> /// <returns> /// The modified SymbolicLink object /// </returns> public IQuery<SymbolicLink> UpdateSymbolicLink(string id, SymbolicLink symlink) { var sfApiQuery = new ShareFile.Api.Client.Requests.Query<SymbolicLink>(Client); sfApiQuery.From("Items"); sfApiQuery.Action("SymbolicLink"); sfApiQuery.ActionIds(id); sfApiQuery.Body = symlink; sfApiQuery.HttpMethod = "PATCH"; return sfApiQuery; }
/// <summary> /// Creates SymbolicLink /// </summary> /// <example> /// { /// "Name":"RemoteFileName", /// "Description":"Description", /// "Link":"https://server/provider/version/Items(id)", /// "Zone":{ "Id":"z014766e-8e96-4615-86aa-57132a69843c" }, /// "ConnectorGroup": { "Id":"1" } /// } /// </example> /// <param name="url"></param> /// <param name="symlink"></param> /// <param name="overwrite"></param> /// <returns> /// the new SymbolicLink /// </returns> public IQuery<SymbolicLink> CreateChildrenByConnectorGroup(Uri url, SymbolicLink symlink, bool overwrite = false) { var sfApiQuery = new ShareFile.Api.Client.Requests.Query<SymbolicLink>(Client); sfApiQuery.Action("Children"); sfApiQuery.Uri(url); sfApiQuery.QueryString("overwrite", overwrite); sfApiQuery.Body = symlink; sfApiQuery.HttpMethod = "POST"; return sfApiQuery; }