Example #1
0
        public IActionResult Post(Guid authorId, [FromBody] BookPostModel model)
        {
            if (model == null)
            {
                return(BadRequest());
            }

            if (model.Title == model.Description)
            {
                ModelState.AddModelError(nameof(AuthorBooksController), "Title cannot equal description");
            }

            if (!ModelState.IsValid)
            {
                return(new UnprocessibleEntityObjectResult(ModelState));
            }

            if (!_rpeo.AuthorExists(authorId))
            {
                return(NotFound());
            }

            _rpeo.AddBookForAuthor(authorId, model.GetEntity());

            _rpeo.Save();

            return(CreatedAtRoute("GetAuthorBook",
                                  new { authorId, id = model.Id },
                                  new BookGetModel(model.GetEntity())
                                  ));
        }
Example #2
0
        public ActionResult AddArchive(BookPostModel model)
        {
            var identity = User.Identity as ClaimsIdentity;
            var userId   = identity.Claims.First(x => x.Type == ClaimTypes.NameIdentifier).Value;

            var book = _mapper.Map <BookModel>(model);

            var addArchive = _bookService.CreateArchive(book);

            return(View(addArchive));
        }
        public async Task <IActionResult> Edit(BookPostModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var book = Mapper.Map <Book>(model);
                    var _id  = 0;
                    if (book.Id == 0)
                    {
                        var _book = await BookService.CreateAsync(book);

                        _id = _book.Id;
                    }
                    else
                    {
                        await BookService.UpdateAsync(book);

                        _id = book.Id;
                    }

                    // save image
                    if (model.Image != null || model.Remove)
                    {
                        if (model.Remove)
                        {
                            await BookService.SetImageAsync(_id, null);
                        }
                        else
                        {
                            await BookService.SetImageAsync(_id, model.Image.OpenReadStream());
                        }
                    }

                    return(RedirectToAction("view", "book", new { id = _id, slug = $"Nr. {book.Number} {book.Title}".ToSlug() }));
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("error", ex.Message);
                }
            }

            var view = new BookEditContainer
            {
                Book = model
            };

            return(View("Edit", view));
        }
Example #4
0
        public async Task <ActionResult <string> > PostBook([FromBody] BookPostModel bookPostModel)
        {
            // TODO: Проверить, сработает ли просто передача ID.
            var book = new Book(bookPostModel.Title, bookPostModel.YearOfIssue,
                                bookPostModel.Price, bookPostModel.Amount)
            {
                Author   = await _context.Authors.FindAsync(bookPostModel.AuthorId),
                Category = await _context.Categories.FindAsync(bookPostModel.CategoryId)
            };

            // Добавляем в базу данных переданную книгу.
            _context.Books.Add(book);

            // Сохраняем изменения в базе данных.
            await _context.SaveChangesAsync();

            // TODO: Разобраться с методом CreatedAtAction.
            return(JsonConvert.SerializeObject(new BookViewModel(book)));
        } // PostBook.
Example #5
0
        public async Task <ActionResult> PostBook(BookPostModel bookPostModel)
        {
            if (!ModelState.IsValid)
            {
                List <string> errors = _modelStateErrorHandler.GetErrors(ModelState);
                return(BadRequest(errors));
            }

            long bookId;

            try
            {
                var bookPostDto = _mapper.Map <BookPostDto>(bookPostModel);
                bookId = await _bookService.AddBookAsync(bookPostDto);
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }

            return(Ok(bookId));
        }
Example #6
0
        public IActionResult Post([Required][FromBody] BookPostModel model)
        {
            if (ModelState.IsValid)
            {
                BookDTO newBook = new BookDTO
                {
                    Title       = model.Title.Trim(),
                    AuthorId    = model.AuthorId,
                    Genre       = model.Genre.Trim(),
                    Rate        = model.Rate,
                    Description = model.Description,
                    Year        = model.Year,
                    RatesAmount = model.RatesAmount,
                    Image       = model.Image,
                    FileBook    = model.FileBook
                };

                _dataWriter.Add(newBook);
            }

            return(Ok());
        }