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()) )); }
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)); }
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.
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)); }
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()); }