public async Task <int> UpdateAmountInStock(BookUpdateAmountDTO bookUpdateAmountDTO) { var book = await base.GetByIdAsync(bookUpdateAmountDTO.id); var totalAdded = bookUpdateAmountDTO.addToAmount - bookUpdateAmountDTO.removeToAmount; book.Amount = book.Amount + totalAdded; return(await base.UpdateAsync(book)); }
public async Task <ActionResult <bool> > PutBookUpdateAmount(BookUpdateAmountDTO bookUpdateAmountDTO) { // valida if (bookUpdateAmountDTO.addToAmount < 0 || bookUpdateAmountDTO.removeToAmount < 0) { // erro _notification.AddNotification("", "Os valores devem ser sempre positivo."); return(BadRequest(_notification)); } else { try { if (bookUpdateAmountDTO.id > 0) { // edita var updated = await _bookService.UpdateAmountInStock(bookUpdateAmountDTO); if (updated == 1) { // sucesso return(Ok(true)); } else { // falha _logger.LogError($"Não foi possível atualizar o estoque."); _notification.AddNotification("", "Algo deu errado, verifique se o livro já foi adicionado ao sistema."); return(BadRequest(_notification)); } } else { // erro _logger.LogError($"Não foi possível atualizar o estoque, livro inexistente."); _notification.AddNotification("", "Algo deu errado, verifique se o livro já foi adicionado ao sistema."); return(BadRequest(_notification)); } } catch (Exception ex) { // Erro _logger.LogError($"Algo deu errado: { ex.Message }."); _notification.AddNotification("", "Algo deu errado, verifique o LOG para mais informações."); return(StatusCode(500, _notification)); } } }
public async Task Book_Stock_Update_Without_Authentication_Return_Unauthorized() { // Arrange var bookUpdateAmount = new BookUpdateAmountDTO(); bookUpdateAmount.id = 1; bookUpdateAmount.addToAmount = 5; bookUpdateAmount.removeToAmount = 1; StringContent contentString = JsonSerialize.GenerateStringContent(bookUpdateAmount); // Act var response = await _client.PutAsync("api/bookstock/", contentString); // Assert response.StatusCode.Should().Be(HttpStatusCode.Unauthorized); }
public async Task UpdateBookAmountAsync() { // arrange // Arrange var book = await _bookService.AddAsync(_bookBuilder.CreateValidBook()); var bookAmount = new BookUpdateAmountDTO(); bookAmount.id = book.Id; bookAmount.addToAmount = 15; bookAmount.removeToAmount = 5; // act var updated = await _bookService.UpdateAmountInStock(bookAmount); // assert Assert.Equal(1, updated); var bookUpdated = await _bookService.GetByIdAsync(book.Id); bookUpdated.Amount.Should().Be(10); }
public async Task Book_Store_Update_Amount_Return_BadRequest() { // Arrange Authenticate(); StringContent postContentString = JsonSerialize.GenerateStringContent(_bookBuilder.CreateValidBook()); var postResponse = await _client.PostAsync("api/book/", postContentString); var bookDTO = await postResponse.Content.ReadAsAsync <BookDTO>(); var bookUpdateAmount = new BookUpdateAmountDTO(); bookUpdateAmount.id = bookDTO.id; bookUpdateAmount.addToAmount = -5; bookUpdateAmount.removeToAmount = 1; StringContent putContentString = JsonSerialize.GenerateStringContent(bookUpdateAmount); // Act var response = await _client.PutAsync("api/bookstock/", putContentString); // Assert response.StatusCode.Should().Be(HttpStatusCode.BadRequest); }