コード例 #1
0
        private async Task RunCreate()
        {
            base.CheckForValue(this._taskId.Value, this._app, "A task ID is required for this command");
            if (!this._assignToUserId.HasValue() && !this._assignToUserLogin.HasValue())
            {
                this._app.ShowHelp();
                Reporter.WriteError("You must include a user ID or login for this command.");
                return;
            }
            var boxClient            = base.ConfigureBoxClient(oneCallAsUserId: base._asUser.Value(), oneCallWithToken: base._oneUseToken.Value());
            var taskAssignmentCreate = new BoxTaskAssignmentRequest();

            taskAssignmentCreate.Task     = new BoxTaskRequest();
            taskAssignmentCreate.Task.Id  = this._taskId.Value;
            taskAssignmentCreate.AssignTo = new BoxAssignmentRequest();
            if (this._assignToUserId.HasValue())
            {
                taskAssignmentCreate.AssignTo.Id = this._assignToUserId.Value();
            }
            else if (this._assignToUserLogin.HasValue())
            {
                taskAssignmentCreate.AssignTo.Login = this._assignToUserLogin.Value();
            }
            var taskAssignment = await boxClient.TasksManager.CreateTaskAssignmentAsync(taskAssignmentCreate);

            if (base._json.HasValue() || this._home.GetBoxHomeSettings().GetOutputJsonSetting())
            {
                base.OutputJson(taskAssignment);
                return;
            }
            Reporter.WriteSuccess("Created task assignment.");
            base.PrintTaskAssignment(taskAssignment);
        }
コード例 #2
0
        /// <summary>
        /// Used to assign a task to a single user. There can be multiple assignments on a given task.
        /// </summary>
        /// <param name="taskAssignmentRequest">BoxTaskAssignmentRequest object.</param>
        /// <returns>A new task assignment object will be returned upon success.</returns>
        public async Task <BoxTaskAssignment> CreateTaskAssignmentAsync(BoxTaskAssignmentRequest taskAssignmentRequest)
        {
            taskAssignmentRequest.ThrowIfNull("taskAssignmentRequest")
            .Task.ThrowIfNull("taskAssignmentRequest.Task")
            .Id.ThrowIfNullOrWhiteSpace("taskAssignmentRequest.Task.Id");
            taskAssignmentRequest.AssignTo.ThrowIfNull("taskAssignmentRequest.AssignTo");
            if (string.IsNullOrEmpty(taskAssignmentRequest.AssignTo.Login) && string.IsNullOrEmpty(taskAssignmentRequest.AssignTo.Id))
            {
                throw new ArgumentException("At least one of Id or Login is required in this object.", "taskAssignmentRequest.AssignTo");
            }


            BoxRequest request = new BoxRequest(_config.TaskAssignmentsEndpointUri)
                                 .Method(RequestMethod.Post)
                                 .Payload(_converter.Serialize(taskAssignmentRequest));

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

            return(response.ResponseObject);
        }
コード例 #3
0
        public async Task CreateTaskAssignment_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"": null,
                                        ""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 taskAssignmentRequest = new BoxTaskAssignmentRequest()
            {
                Task = new BoxTaskRequest()
                {
                    Id = "1992432"
                },
                AssignTo = new BoxAssignmentRequest()
                {
                    Id = "1992432"
                }
            };
            BoxTaskAssignment result = await _tasksManager.CreateTaskAssignmentAsync(taskAssignmentRequest);

            /*** Assert ***/
            //Request check
            Assert.IsNotNull(boxRequest);
            Assert.AreEqual(RequestMethod.Post, boxRequest.Method);
            Assert.AreEqual(taskAssignmentsUri, boxRequest.AbsoluteUri.AbsoluteUri);
            BoxTaskAssignmentRequest payload = JsonConvert.DeserializeObject <BoxTaskAssignmentRequest>(boxRequest.Payload);

            Assert.AreEqual(taskAssignmentRequest.Task.Id, payload.Task.Id);
            Assert.AreEqual(taskAssignmentRequest.Task.Type, payload.Task.Type);
            Assert.AreEqual(taskAssignmentRequest.AssignTo.Id, payload.AssignTo.Id);
            Assert.AreEqual(taskAssignmentRequest.AssignTo.Login, payload.AssignTo.Login);

            //Response check
            Assert.AreEqual("2698512", result.Id);
            Assert.AreEqual("task_assignment", result.Type);
            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);
        }