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); }
/// <summary> /// Creates a retention policy assignment that associates a retention policy with either a folder or an enterprise /// </summary> /// <param name="policyAssignmentRequest"></param> /// <param name="fields"></param> /// <returns></returns> public async Task <BoxRetentionPolicyAssignment> CreateRetentionPolicyAssignmentAsync(BoxRetentionPolicyAssignmentRequest policyAssignmentRequest, List <string> fields = null) { BoxRequest request = new BoxRequest(_config.RetentionPolicyAssignmentsUri) .Method(RequestMethod.Post) .Param(ParamFields, fields) .Payload(_converter.Serialize <BoxRetentionPolicyAssignmentRequest>(policyAssignmentRequest)); IBoxResponse <BoxRetentionPolicyAssignment> response = await ToResponseAsync <BoxRetentionPolicyAssignment>(request).ConfigureAwait(false); return(response.ResponseObject); }
public async Task AssignPolicyToMetadataTemplate_OptionalParams_Success() { /*** Arrange ***/ string responseString = "{" + "\"type\": \"retention_policy_assignment\"," + "\"id\": \"3233225\"," + "\"retention_policy\": {" + " \"type\": \"retention_policy\"," + " \"id\": \"32131\"," + " \"policy_name\": \"TaxDocuments\"" + "}," + "\"assigned_to\": {" + " \"type\": \"metadata_template\"," + " \"id\": \"enterprise.my_template\"" + "}," + "\"assigned_by\": {" + " \"type\": \"user\"," + " \"id\": \"123456789\"," + " \"name\": \"Sean\"," + " \"login\": \"[email protected]\"" + "}," + "\"assigned_at\": \"2015-07-20T14:28:09-07:00\"," + "\"filter_fields\": [" + " {" + " \"field\": \"foo\"," + " \"value\": \"bar\"" + " }," + " {" + " \"field\": \"baz\"," + " \"value\": 42" + " }" + "]" + "}"; Handler.Setup(h => h.ExecuteAsync <BoxRetentionPolicyAssignment>(It.IsAny <IBoxRequest>())) .Returns(Task.FromResult <IBoxResponse <BoxRetentionPolicyAssignment> >(new BoxResponse <BoxRetentionPolicyAssignment>() { Status = ResponseStatus.Success, ContentString = responseString })); /*** Act ***/ BoxRetentionPolicyAssignmentRequest assignmentParams = new BoxRetentionPolicyAssignmentRequest(); assignmentParams.AssignTo = new BoxRequestEntity(); assignmentParams.AssignTo.Type = BoxType.metadata_template; assignmentParams.AssignTo.Id = "enterprise.my_template"; assignmentParams.FilterFields = new List <object> { new { field = "foo", value = "bar" }, new { field = "baz", value = 42 } }; BoxRetentionPolicyAssignment result = await _retentionPoliciesManager.CreateRetentionPolicyAssignmentAsync(assignmentParams); /*** Assert ***/ Assert.IsInstanceOfType(result.AssignedTo, typeof(BoxMetadataTemplate)); Assert.AreEqual("enterprise.my_template", result.AssignedTo.Id); Assert.AreEqual("foo", result.FilterFields[0].Field); Assert.AreEqual("bar", result.FilterFields[0].Value); Assert.AreEqual("baz", result.FilterFields[1].Field); Assert.AreEqual(42.ToString(), result.FilterFields[1].Value); }