public JsonResult SaveBook(BookInfo bookInfo, HttpPostedFileBase image) { if (!ModelState.IsValid) return GetErrors(); return Json(new { status = _repository.Save(new Book(bookInfo, GetPostedBookImage(image))), message = "Книга успешно сохранена" }); }
public JsonResult UpdateBook(BookInfo bookInfo, HttpPostedFileBase image) { if (!ModelState.IsValid) return GetErrors(); var book = _repository.GetBook(bookInfo.Id); if (book == null) return Json(new { status = false, message = "Книга не найдена" }); book.BookImage = GetPostedBookImage(image); book.Isbn = bookInfo.Isbn; book.Pages = bookInfo.Pages; book.Publisher = bookInfo.Publisher; book.PublishingYear = bookInfo.PublishingYear; book.Title = bookInfo.Title; // ExcludeRemoved -> Метод расширения для отбора ликвидных авторов // Путь: Infrastructute/Extensions/AuthorExtenson.cs // // При удалении автора, input поля принимают значения __removed и скрываются book.Authors = bookInfo.Authors.ExcludeRemoved().ToArray(); return Json(new { status = _repository.Update(book), message = "Информация успешно обновлена" }); }
public Book(BookInfo bookInfo, BookImage bookImage) : this(bookInfo.Id, bookInfo.Pages, bookInfo.PublishingYear, bookInfo.Title, bookInfo.Publisher, bookInfo.Isbn, bookInfo.Authors.ExcludeRemoved(), bookImage) { }