/// <summary>
        /// Used to update a task assignment.
        /// </summary>
        /// <param name="taskAssignmentUpdateRequest">BoxTaskAssignmentUpdateRequest object.</param>
        /// <returns>A new task assignment object will be returned upon success.</returns>
        public async Task <BoxTaskAssignment> UpdateTaskAssignmentAsync(BoxTaskAssignmentUpdateRequest taskAssignmentUpdateRequest)
        {
            taskAssignmentUpdateRequest.ThrowIfNull("taskAssignmentUpdateRequest")
            .Id.ThrowIfNull("taskAssignmentUpdateRequest.Id");

            BoxRequest request = new BoxRequest(_config.TaskAssignmentsEndpointUri, taskAssignmentUpdateRequest.Id)
                                 .Method(RequestMethod.Put)
                                 .Payload(_converter.Serialize(taskAssignmentUpdateRequest));

            IBoxResponse <BoxTaskAssignment> response = await ToResponseAsync <BoxTaskAssignment>(request).ConfigureAwait(false);

            return(response.ResponseObject);
        }
Example #2
0
        private async Task RunUpdate()
        {
            base.CheckForValue(this._taskAssignmentId.Value, this._app, "A task assignment ID is required for this command");
            var boxClient            = base.ConfigureBoxClient(oneCallAsUserId: base._asUser.Value(), oneCallWithToken: base._oneUseToken.Value());
            var taskAssignmentUpdate = new BoxTaskAssignmentUpdateRequest();

            taskAssignmentUpdate.Id = this._taskAssignmentId.Value;
            if (this._completed.HasValue())
            {
                taskAssignmentUpdate.ResolutionState = ResolutionStateType.completed;
            }
            else if (this._incomplete.HasValue())
            {
                taskAssignmentUpdate.ResolutionState = ResolutionStateType.incomplete;
            }
            else if (this._approved.HasValue())
            {
                taskAssignmentUpdate.ResolutionState = ResolutionStateType.approved;
            }
            else if (this._rejected.HasValue())
            {
                taskAssignmentUpdate.ResolutionState = ResolutionStateType.rejected;
            }

            if (this._message.HasValue())
            {
                taskAssignmentUpdate.Message = this._message.Value();
            }
            var taskAssignment = await boxClient.TasksManager.UpdateTaskAssignmentAsync(taskAssignmentUpdate);

            if (base._json.HasValue() || this._home.GetBoxHomeSettings().GetOutputJsonSetting())
            {
                base.OutputJson(taskAssignment);
                return;
            }
            Reporter.WriteSuccess("Updated task assignment.");
            base.PrintTaskAssignment(taskAssignment);
        }
        public async Task UpdateTaskAssignment_ValidResponse()
        {
            /*** Arrange ***/
            var         responseString     = @"{
                                            ""type"": ""task_assignment"",
                                            ""id"": ""2698512"",
                                            ""item"": {
                                                ""type"": ""file"",
                                                ""id"": ""8018809384"",
                                                ""sequence_id"": ""0"",
                                                ""etag"": ""0"",
                                                ""sha1"": ""7840095ee096ee8297676a138d4e316eabb3ec96"",
                                                ""name"": ""scrumworksToTrello.js""
                                            },
                                            ""assigned_to"": {
                                                ""type"": ""user"",
                                                ""id"": ""1992432"",
                                                ""name"": ""*****@*****.**"",
                                                ""login"": ""*****@*****.**""
                                            },
                                            ""message"": ""hello!!!"",
                                            ""completed_at"": null,
                                            ""assigned_at"": ""2013-05-10T11:43:41-07:00"",
                                            ""reminded_at"": null,
                                            ""status"": ""incomplete"",
                                            ""assigned_by"": {
                                                ""type"": ""user"",
                                                ""id"": ""11993747"",
                                                ""name"": ""sean"",
                                                ""login"": ""*****@*****.**""
                                            }
                                        }";
            IBoxRequest boxRequest         = null;
            var         taskAssignmentsUri = new Uri(Constants.TaskAssignmentsEndpointString);

            Config.SetupGet(x => x.TaskAssignmentsEndpointUri).Returns(taskAssignmentsUri);
            Handler.Setup(h => h.ExecuteAsync <BoxTaskAssignment>(It.IsAny <IBoxRequest>()))
            .Returns(Task.FromResult <IBoxResponse <BoxTaskAssignment> >(new BoxResponse <BoxTaskAssignment>()
            {
                Status        = ResponseStatus.Success,
                ContentString = responseString
            }))
            .Callback <IBoxRequest>(r => boxRequest = r);

            /*** Act ***/
            var taskAssignmentUpdateRequest = new BoxTaskAssignmentUpdateRequest()
            {
                Id      = "2698512",
                Message = "hello!!!"
            };
            BoxTaskAssignment result = await _tasksManager.UpdateTaskAssignmentAsync(taskAssignmentUpdateRequest);

            /*** Assert ***/
            //Request check
            Assert.IsNotNull(boxRequest);
            Assert.AreEqual(RequestMethod.Put, boxRequest.Method);
            Assert.AreEqual(taskAssignmentsUri + taskAssignmentUpdateRequest.Id, boxRequest.AbsoluteUri.AbsoluteUri);
            BoxTaskAssignmentUpdateRequest payload = JsonConvert.DeserializeObject <BoxTaskAssignmentUpdateRequest>(boxRequest.Payload);

            Assert.AreEqual(taskAssignmentUpdateRequest.Id, payload.Id);
            Assert.AreEqual(taskAssignmentUpdateRequest.Message, payload.Message);

            //Response check
            Assert.AreEqual("2698512", result.Id);
            Assert.AreEqual("task_assignment", result.Type);
            Assert.AreEqual("hello!!!", result.Message);
            Assert.AreEqual("8018809384", result.Item.Id);
            Assert.AreEqual("file", result.Item.Type);
            Assert.AreEqual("0", result.Item.ETag);
            Assert.AreEqual("incomplete", result.Status);
            Assert.AreEqual("*****@*****.**", result.AssignedBy.Login);
            Assert.AreEqual("11993747", result.AssignedBy.Id);
            Assert.AreEqual("*****@*****.**", result.AssignedTo.Login);
            Assert.AreEqual("1992432", result.AssignedTo.Id);
        }