Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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);
        }