Example #1
0
        public async Task Hanlde_ModifyProjectAttributesCommand_ModifiesAttributesFromProjectAsync()
        {
            // arrange
            var project = CreateProject();

            var command = new ModifyProjectCommand
            {
                Id          = project.Id,
                Name        = "NewProjectName",
                Description = "NewProjectDescription"
            };

            var session = new Mock <ISession>();

            session.Setup(s => s.Get <Project>(project.Id, command.ExpectedVersion, It.IsAny <CancellationToken>())).Returns(Task.FromResult(project));

            var target = new ProjectCommandHandler(session.Object);

            // act
            await target.Handle(command);

            // assert
            Assert.Equal(command.Name, project.Name);
            Assert.Equal(command.Description, project.Description);
            session.Verify(s => s.Commit(It.IsAny <CancellationToken>()));
        }
Example #2
0
        public async Task <IActionResult> UpdateProject([FromBody] ModifyProjectCommand command)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var response = await _mediator.Send(command);

                    return(StatusCode(response.ResponseStatusCode, response.Value));
                }
                return(StatusCode(StatusCodes.Status400BadRequest));
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }