public async Task <Book> UpdateBookAsync(long id, UpdateBookRequestModel request)
        {
            var categories = await _context.Categories
                             .Where(x => request.CategoryId.Contains(x.CategoryId)).ToListAsync();

            var bookCategory = new List <BookCategory>();

            foreach (var category in categories)
            {
                bookCategory.Add(new BookCategory()
                {
                    Category = category
                });
            }

            var book = await FindAsync(id);


            if (book == null)
            {
                return(null);
            }

            if (bookCategory != null)
            {
                book.BookCategories = bookCategory;
            }


            if (request.Title != null)
            {
                book.Title = request.Title;
            }

            if (request.Description != null)
            {
                book.Description = request.Description;
            }


            if (request.Price != 0)
            {
                book.Price = request.Price;
            }

            if (request.AuthorId != 0)
            {
                book.AuthorId = request.AuthorId;
            }

            _context.Books.Update(book);
            if (await _context.SaveChangesAsync() > 0)
            {
                return(book);
            }

            return(null);
        }
示例#2
0
        public async Task <IActionResult> UpdateBookDetails(UpdateBookRequestModel requestModel)
        {
            _logger.LogInformation("Update book details");

            var updatedBook = await _bookService.UpdateBooksAsync(requestModel);

            var updatedBookResponse = _mapper.Map <BookResponse>(updatedBook);

            return(Ok(updatedBookResponse));
        }
示例#3
0
        public async Task <IActionResult> UpdateCategory(long id, [FromForm] UpdateBookRequestModel request)
        {
            var book = await _bookRepository.UpdateBookAsync(id, request);

            if (book != null)
            {
                return(Ok(book));
            }

            return(BadRequest());
        }
示例#4
0
        public async Task <Book> UpdateBooksAsync(UpdateBookRequestModel requestModel)
        {
            var bookItem = await _dataContext.Books.SingleOrDefaultAsync(x => x.BookId == requestModel.BookId);

            if (bookItem != null)
            {
                bookItem.ShortDescr   = requestModel.ShortDescription;
                bookItem.ThumbnailUrl = requestModel.ThumbnailUrl;
                bookItem.Title        = requestModel.Title;
                await _dataContext.SaveChangesAsync();
            }
            return(bookItem);
        }
        public async Task UpdateBookDetailsTest()
        {
            //  Arrange
            _mockBookService.Setup(b => b.UpdateBooksAsync(It.IsAny <UpdateBookRequestModel>())).Returns(Task.FromResult(It.IsAny <Domain.Book>()));
            var sut = new BooksController(_mockLogger.Object, _mockBookService.Object, _mockMapper.Object);

            //  Act
            var requestModel = new UpdateBookRequestModel
            {
                BookId           = 10,
                ShortDescription = "Test"
            };

            var result = await sut.UpdateBookDetails(requestModel);

            _mockBookService.Verify(s => s.UpdateBooksAsync(It.IsAny <UpdateBookRequestModel>()), Times.Once, "Expected GetBooksAsync to have been called once");
        }
示例#6
0
 /// <summary>
 /// 修改图书信息
 /// </summary>
 /// <param name="model">修改图书信息请求模型</param>
 /// <returns></returns>
 public Task EditBookInfoAsync(UpdateBookRequestModel model)
 {
     throw new NotImplementedException();
 }