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));
        }
Пример #2
0
        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));
                }
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }