private static JObject CreateJsonBody(string field, string id, LinkAccessControl accessControl)
        {
            var parameters = new JObject();

            parameters[field] = id;

            if (accessControl != null)
            {
                parameters[RestApiConstants.ACCESS_CONTROL] = AccessControlConverter.ToJsonObject(accessControl);
            }

            return(parameters);
        }
        public void UpdateLink(string userId, string linkId, LinkAccessControl accessControl)
        {
            var updateLinkRequest = CreateRestRequest(URI_RESOURCE + linkId, Method.PUT, ContentType.APPLICATION_JSON);

            var parameters = new JObject();

            parameters[RestApiConstants.ACCESS_CONTROL] = AccessControlConverter.ToJsonObject(accessControl);

            updateLinkRequest.AddParameter(ContentType.APPLICATION_JSON, parameters.ToString(), ParameterType.RequestBody);

            var result = Execute <Link>(GetOAuthInfo(userId), updateLinkRequest);

            ValidateResponse(result, new StatusCodeResponseHandler(HttpStatusCode.NoContent));
        }
예제 #3
0
        public static JObject ToJsonObject(LinkAccessControl accessControl)
        {
            var access = new JObject();

            if (accessControl.ExpiryDate != null)
            {
                access[RestApiConstants.EXPIRY_DATE] = accessControl.ExpiryDate;
            }

            if (accessControl.MaxDownloads != null)
            {
                access[RestApiConstants.MAX_DOWNLOADS] = accessControl.MaxDownloads;
            }

            if (accessControl.Password != null)
            {
                access[RestApiConstants.PASSWORD] = accessControl.Password;
            }

            access[RestApiConstants.VIEW_ONLY] = accessControl.ViewOnly;
            return(access);
        }
        private LinkCreationResponse CreateLink(string userId, string field, string id, LinkAccessControl accessControl)
        {
            if (id == null || field == null)
            {
                throw new ArgumentException("Id and field need to be set.");
            }

            var     createLinkRequest = CreateRestRequest(URI_RESOURCE, Method.POST);
            JObject parameters        = CreateJsonBody(field, id, accessControl);

            createLinkRequest.AddParameter(ContentType.APPLICATION_JSON, parameters.ToString(), ParameterType.RequestBody);

            var result = Execute <LinkCreationResponse>(GetOAuthInfo(userId), createLinkRequest);

            return(UnwrapResponse(result, new StatusCodeResponseHandler <LinkCreationResponse>(HttpStatusCode.Created)));
        }
 public LinkCreationResponse CreateCollectionLink(string userId, string id, LinkAccessControl accessControl)
 {
     return(CreateLink(userId, RestApiConstants.COLLECTION, id, accessControl));
 }
 public LinkCreationResponse CreateFolderLink(string userId, string id, LinkAccessControl accessControl)
 {
     return(CreateLink(userId, RestApiConstants.FOLDER, id, accessControl));
 }
 public LinkCreationResponse CreateDocumentLink(string userId, string id, LinkAccessControl accessControl)
 {
     return(CreateLink(userId, RestApiConstants.DOCUMENT_ID, id, accessControl));
 }