public async Task <IActionResult> ApproveAsync([FromBody] ApproveDocumentRequest model, CancellationToken token) { var command = new ApproveDocumentCommand(model.Id); await _commandBus.DispatchAsync(command, token); return(Ok()); }
public static async Task ApproveDocument(this HttpClient httpClient, Uri documentUri, ApproveDocumentCommand command) { var requestUri = CombineUri(documentUri, "approve"); var content = GetStringContent(command); var response = await httpClient.PutAsync(requestUri, content); response.EnsureSuccessStatusCode(); }
public async Task <IActionResult> ApproveDocument(Guid id, [FromBody] ApproveDocumentCommand command) { var outcome = from doc in GetDocumentFromEvents(id) from u in ValidateDocumentUser(doc.UserId.Value) from result in doc.Approve(command.Comment).AsTask() from _ in SaveAndPublishEventAsync(result.Event) select result.Document; return(await outcome.Map(val => val.ToActionResult(_ => NoContent()))); }
public async Task TestApproveDocumentReadEventsErrorBadRequestResult() { //Arrange var command = new ApproveDocumentCommand("approve"); const string error = "testError"; _documentsController = new DocumentsController(TestHelper.ReadEventsFuncWithError(error), TestHelper.SaveAndPublish, DocumentExistsByNumber, TestHelper.GetDocumentById(), TestHelper.GetCurrentUserId()); //Act var result = await _documentsController.ApproveDocument(Guid.Empty, command); //Assert var badRequestResult = result as BadRequestObjectResult; Assert.NotNull(badRequestResult); Assert.NotNull(badRequestResult.Value); }
public async Task TestApproveDocumentInvalidCommandBadRequestResult() { //Arrange var command = new ApproveDocumentCommand(string.Empty); var documentCreatedDto = new DocumentCreatedEventDto(Guid.Empty, DateTime.UtcNow, Guid.Empty, "1234", string.Empty); var readEventsFunc = TestHelper.ValidReadEventsFunc(documentCreatedDto.ToEvent()); _documentsController = new DocumentsController(readEventsFunc, TestHelper.SaveAndPublish, DocumentExistsByNumber, TestHelper.GetDocumentById(), TestHelper.GetCurrentUserId()); //Act var result = await _documentsController.ApproveDocument(Guid.Empty, command); //Assert var badRequestResult = result as BadRequestObjectResult; Assert.NotNull(badRequestResult); Assert.NotNull(badRequestResult.Value); }
public async Task ApproveDocumentTest() { // Arrange var createDocumentCommand = new CreateDocumentCommand(DateTime.UtcNow.Ticks.ToString(), "Test document"); var addFileCommand = new AddFileCommand("Test", "Test file"); var approveDocumentCommand = new ApproveDocumentCommand("Approved"); // Act var documentUri = await _client.CreateDocumentAsync(createDocumentCommand); await _client.AddFileAsync(documentUri, addFileCommand); await _client.SendDocumentForApprovalAsync(documentUri); await _client.ApproveDocument(documentUri, approveDocumentCommand); var document = await _client.GetAsync <Document>(documentUri); // Assert Assert.NotNull(document); Assert.Equal(DocumentStatus.Approved.ToString(), document.Status); Assert.Equal(approveDocumentCommand.Comment, document.ApprovalComment); }
public async Task TestApproveDocumentNoContentResult() { //Arrange var documentCreatedDto = new DocumentCreatedEventDto(Guid.Empty, DateTime.UtcNow, Guid.Empty, "1234", string.Empty); var fileAddedDto = new FileAddedEventDto(Guid.Empty, DateTime.UtcNow, Guid.Empty, "test", string.Empty); var documentSentToApprovalDto = new DocumentSentForApprovalEventDto(Guid.Empty, DateTime.UtcNow); var readEventsFunc = TestHelper.ValidReadEventsFunc(documentCreatedDto.ToEvent(), fileAddedDto.ToEvent(), documentSentToApprovalDto.ToEvent()); var command = new ApproveDocumentCommand("approve"); _documentsController = new DocumentsController(readEventsFunc, TestHelper.SaveAndPublish, DocumentExistsByNumber, TestHelper.GetDocumentById(), TestHelper.GetCurrentUserId()); //Act var result = await _documentsController.ApproveDocument(Guid.Empty, command); //Assert var noContentResult = result as NoContentResult; Assert.NotNull(noContentResult); }