Пример #1
0
 public void Create(CreateBookDto dto)
 {
     if (string.Equals(dto?.Author, "lemon", StringComparison.Ordinal))
     {
         DataState?.Errors?.Add(new DataValidationError("Author", "lemon向阁下问好!"));
     }
 }
Пример #2
0
        public async Task Test2()
        {
            // arrange
            Seeder.SeedDatabase(_context);
            var bookToCreate = new CreateBookDto
            {
                Title    = "test title",
                Author   = "test author",
                Category = "test category"
            };

            // act
            var result = await _bookRepository.CreateBook(bookToCreate);

            // assert
            result.ShouldNotBeNull();
            result.BookId.ShouldBePositive();
            result.Author.ShouldNotBeNull();
            result.Author.ShouldBe(bookToCreate.Author);
            result.Title.ShouldNotBeNull();
            result.Title.ShouldBe(bookToCreate.Title);
            result.Category.ShouldNotBeNull();
            result.Category.ShouldBe(bookToCreate.Category);
            await _context.Database.EnsureDeletedAsync();
        }
Пример #3
0
        public ActionResult <Book> AddBook([FromBody] CreateBookDto createBookDto)
        {
            Book book = _mapper.Map <Book>(createBookDto);

            _bookRepository.AddBook(book);
            return(CreatedAtRoute(nameof(GetBookById), new { book.Id }, book));
        }
Пример #4
0
        public IActionResult CreateBooksForAuthor(Guid authorId, [FromBody] CreateBookDto book)
        {
            if (book == null)
            {
                return(NotFound());
            }
            if (string.Equals(book.Description, book.Description, StringComparison.InvariantCultureIgnoreCase))
            {
                ModelState.AddModelError(nameof(CreateBookDto), "The provider description should be different from the title");
            }
            if (!ModelState.IsValid)
            {
                return(new Helpers.UnprocessableEntityObjectResult(ModelState));
            }
            if (!libraryRepository.AuthorExists(authorId))
            {
                return(NotFound());
            }
            var bookEntity = Mapper.Map <Book>(book);

            libraryRepository.AddBookForAuthor(authorId, bookEntity);
            if (!libraryRepository.Save())
            {
                throw new Exception($"Creating a book for author {authorId} faild on save");
            }
            var bookToReturn = Mapper.Map <BookDto>(bookEntity);

            return(CreatedAtRoute("GetBookForAuthor", new { authorId, id = bookToReturn.Id }, bookToReturn));
        }
Пример #5
0
        public void Execute(CreateBookDto request)
        {
            _validator.ValidateAndThrow(request);

            var book = new Book
            {
                Description = request.Description,
                Price       = request.Price,
                Title       = request.Title,
                GenreId     = request.GenreId,
                PublisherId = request.PublisherId,
                Year        = request.Year
            };

            //add into AuthorBook
            foreach (var item in request.BookAuthors)
            {
                book.BookAuthors.Add(new BookAuthor
                {
                    AuthorId = item.Id,
                    BookId   = book.Id
                });
            }
            _context.Books.Add(book);
            _context.SaveChanges();
        }
Пример #6
0
        public async Task AddBook(CreateBookDto model)
        {
            try
            {
                _unitOfWork.BeginTransaction();
                var bookEntity = new Book
                {
                    Isbn             = model.Isbn,
                    Author           = model.Author,
                    Title            = model.Title,
                    Year             = model.Year,
                    Publisher        = model.Publisher,
                    CreationTime     = DateTime.UtcNow,
                    LastModifiedTime = DateTime.UtcNow
                };
                await _bookRepository.InsertAsync(bookEntity);

                _unitOfWork.Commit();
            }
            catch (Exception e)
            {
                _unitOfWork.Rollback();
                throw new Exception(e.Message);
            }
        }
        public async Task <ReadBookDto> CreateBook(CreateBookDto request)
        {
            Book book = _mapper.Map <Book>(request);

            var task = await _context.Books.AddAsync(book);

            ReadBookDto response = _mapper.Map <ReadBookDto>(task.Entity);

            return(response);
        }
Пример #8
0
        public async Task <ActionResult> CreateBook([FromBody] CreateBookDto createBookDto, CancellationToken ct)
        {
            var bookToReturn = await _bookService.CreateBookAsync(createBookDto, ct);

            if (bookToReturn == null)
            {
                return(BadRequest());
            }

            return(CreatedAtRoute("GetBook", new { id = bookToReturn.Id }, bookToReturn));
        }
        public async Task <IActionResult> Create(CreateBookDto request)
        {
            if (!ModelState.IsValid)
            {
                return(View(request));
            }

            var response = await _bookService.CreateBook(request);

            await _bookService.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Пример #10
0
        public async Task <IActionResult> Put([FromBody] CreateBookViewModel model, long id)
        {
            var createBookDto = new CreateBookDto
            {
                Isbn      = model.Isbn,
                Author    = model.Author,
                Title     = model.Title,
                Year      = model.Year,
                Publisher = model.Publisher
            };
            await _bookService.UpdateBook(createBookDto, id);

            return(Ok("Updated successfully"));
        }