public async Task <string> Execute(IBoxClient client) { var retentionPolicyRequest = new BoxRetentionPolicyRequest { PolicyName = _policyName, PolicyType = "finite", RetentionLength = 1, DispositionAction = DispositionAction.permanently_delete.ToString(), }; var response = await client.RetentionPoliciesManager.CreateRetentionPolicyAsync(retentionPolicyRequest); Policy = response; PolicyId = Policy.Id; var assignmentRequest = new BoxRetentionPolicyAssignmentRequest() { PolicyId = PolicyId, AssignTo = new BoxRequestEntity() { Type = BoxType.folder, Id = _folderId } }; await client.RetentionPoliciesManager.CreateRetentionPolicyAssignmentAsync(assignmentRequest); return(PolicyId); }
public async Task Dispose(IBoxClient client) { var retentionPolicyRequest = new BoxRetentionPolicyRequest { Status = "retired" }; await client.RetentionPoliciesManager.UpdateRetentionPolicyAsync(PolicyId, retentionPolicyRequest); }
/// <summary> /// Used to create a new retention policy /// </summary> /// <param name="retentionPolicyRequest"></param> /// <returns></returns> public async Task <BoxRetentionPolicy> CreateRetentionPolicyAsync(BoxRetentionPolicyRequest retentionPolicyRequest) { BoxRequest request = new BoxRequest(_config.RetentionPoliciesEndpointUri) .Method(RequestMethod.Post) .Payload(_converter.Serialize(retentionPolicyRequest)); IBoxResponse <BoxRetentionPolicy> response = await ToResponseAsync <BoxRetentionPolicy>(request).ConfigureAwait(false); return(response.ResponseObject); }
/// <summary> /// Used to update a retention policy. /// </summary> /// <param name="id"></param> /// <param name="retentionPolicyRequest"></param> /// <param name="fields"></param> /// <returns></returns> public async Task <BoxRetentionPolicy> UpdateRetentionPolicyAsync(string id, BoxRetentionPolicyRequest retentionPolicyRequest, List <string> fields = null) { id.ThrowIfNullOrWhiteSpace("id"); BoxRequest request = new BoxRequest(_config.RetentionPoliciesEndpointUri, id) .Method(RequestMethod.Put) .Param(ParamFields, fields) .Payload(_converter.Serialize <BoxRetentionPolicyRequest>(retentionPolicyRequest)); IBoxResponse <BoxRetentionPolicy> response = await ToResponseAsync <BoxRetentionPolicy>(request).ConfigureAwait(false); return(response.ResponseObject); }
public async Task CreateRetentionPolicy_OptionalParams_Success() { /*** Arrange ***/ string policyName = "Tax Documents"; int retentionLength = 365; string policyType = "finite"; string policyAction = "permanently_delete"; string notifiedUserID = "12345"; string responseString = "{" + "\"type\": \"retention_policy\"," + "\"id\": \"123456789\"," + "\"policy_name\": \"" + policyName + "\"," + "\"policy_type\": \"" + policyType + "\"," + "\"retention_length\": " + retentionLength + "," + "\"disposition_action\": \"" + policyAction + "\"," + "\"status\": \"active\"," + "\"created_by\": {" + " \"type\": \"user\"," + " \"id\": \"11993747\"," + " \"name\": \"Sean\"," + " \"login\": \"[email protected]\"" + "}," + "\"created_at\": \"2015-05-01T11:12:54-07:00\"," + "\"modified_at\": null," + "\"can_owner_extend_retention\": true," + "\"are_owners_notified\": true," + "\"custom_notification_recipients\": [" + " {" + " \"type\": \"user\"," + " \"id\": \"" + notifiedUserID + "\"" + " }" + "]" + "}"; Handler.Setup(h => h.ExecuteAsync <BoxRetentionPolicy>(It.IsAny <IBoxRequest>())) .Returns(Task.FromResult <IBoxResponse <BoxRetentionPolicy> >(new BoxResponse <BoxRetentionPolicy>() { Status = ResponseStatus.Success, ContentString = responseString })); /*** Act ***/ BoxRetentionPolicyRequest requestParams = new BoxRetentionPolicyRequest(); requestParams.AreOwnersNotified = true; requestParams.CanOwnerExtendRetention = true; BoxRequestEntity notifiedUser = new BoxRequestEntity(); notifiedUser.Type = BoxType.user; notifiedUser.Id = notifiedUserID; requestParams.CustomNotificationRecipients = new List <BoxRequestEntity>() { notifiedUser }; requestParams.PolicyName = policyName; requestParams.PolicyType = policyType; requestParams.RetentionLength = retentionLength; requestParams.DispositionAction = policyAction; BoxRetentionPolicy results = await _retentionPoliciesManager.CreateRetentionPolicyAsync(requestParams); /*** Assert ***/ Assert.AreEqual(policyAction, results.DispositionAction); Assert.AreEqual(policyName, results.PolicyName); Assert.AreEqual(policyType, results.PolicyType); Assert.AreEqual(retentionLength.ToString(), results.RetentionLength); Assert.AreEqual(true, results.CanOwnerExtendRetention); Assert.AreEqual(true, results.AreOwnersNotified); Assert.IsNotNull(results.CustomNotificationRecipients); Assert.AreEqual(1, results.CustomNotificationRecipients.Count); Assert.AreEqual(notifiedUserID, results.CustomNotificationRecipients[0].Id); }