示例#1
0
        public BaseResponse <BookOutputDto> CreateBook(BookInputDto bookInputDto)
        {
            if (Contains(x => x.Name.Equals(bookInputDto.Name, StringComparison.InvariantCultureIgnoreCase)))
            {
                throw new BadRequestException($"Tác phẩm {bookInputDto.Name} đã tồn tại");
            }

            var book = Mapper.Map <Book>(bookInputDto);

            book = Create(book, out var isSaved);
            if (!isSaved)
            {
                throw new BadRequestException($"Không thể tạo tác phẩm {book.Name}");
            }

            var bookCategories = _bookCategoryService.CreateMany(bookInputDto.CategoryIds.Select(categoryId =>
                                                                                                 new BookCategory
            {
                BookId     = book.Id,
                CategoryId = Guid.Parse(categoryId)
            }), out isSaved);

            if (!isSaved)
            {
                throw new BadRequestException($"Không thể set category cho tác phẩm {book.Name}");
            }

            book.BookCategories = bookCategories as ICollection <BookCategory>;

            return(new BaseResponse <BookOutputDto>(HttpStatusCode.OK, data: Mapper.Map <BookOutputDto>(book)));
        }