public ActionResult Edit(BookHistoryVm model, HttpPostedFileBase image) { if (model.BookId == 0) { ModelState.Remove("BookId"); if (ModelState.IsValid) { try { _service.Save(model); } catch (WarningException exception) { ModelState.AddModelError("", exception.Message); return View("Edit", model); } } } if (!ModelState.IsValid) { return View("Edit", model); } if (image != null) { var path = Path.Combine(Server.MapPath("~/Images/Books"), string.Format("{0}.{1}", model.BookCode, "jpg")); image.SaveAs(path); _service.AddCover(model.BookCode); } return model.BookId == 0 ? RedirectToAction("Index") : RedirectToAction("Edit", new { @id = _service.Get(model.BookCode).Id }); }
public BookEditVm(BookHistoryVm model) { BookId = model.BookId; Code = model.BookCode; Author = model.BookAuthor; Title = model.BookTitle; Description = model.BookDescription; }
public ActionResult Create(BookHistoryVm book) { ModelState.Remove("BookId"); if (ModelState.IsValid) { try { _service.Save(book); return RedirectToAction("Index"); } catch (WarningException exception) { ModelState.AddModelError("", exception.Message); return View("Edit", book); } } return View("Edit", book); }
private void UpdateHistory(BookHistoryVm model) { foreach (var historyRecord in model.BookHistoryList) { if (historyRecord.Deleted) { var historyToDelete = _unit.BookHistory.Get(historyRecord.Id); _unit.BookHistory.Delete(historyToDelete); } else { _unit.BookHistory.Save(new BookHistoryItem { Id = historyRecord.Id, BookId = historyRecord.BookId, UserId = historyRecord.UserId, OrderDate = historyRecord.OrderDate, Action = historyRecord.Action }); } } }
public void Save(BookHistoryVm model) { Validate(new BookEditVm(model)); var book = Get(model.BookId) ?? new Book(); book.Code = model.BookCode; book.Title = model.BookTitle; book.Author = model.BookAuthor; book.Description = model.BookDescription; book.ReaderName = model.ReaderId == 0 ? "None" : _unit.User.Get(model.ReaderId).FullName; if (book.Tags != null) { var tagsId = book.Tags.Select(tag => tag.Id).ToList(); foreach (var tagToDelete in tagsId.Select(id => _unit.TagRepository.Get(id))) { _unit.TagRepository.Delete(tagToDelete); } } else { book.Tags = new Collection<Tag>(); } if (model.BookTags != null) { foreach (var tag in model.BookTags) { book.Tags.Add(new Tag {Name = tag}); } } if (model.BookHistoryList != null) { UpdateHistory(model); } _unit.Book.Save(book); }
public BookHistoryVm GetBookHistories(int bookId) { var book = _unit.Book.Get(bookId); if (book.Id == 0) { throw new WarningException(); } var result = new BookHistoryVm(book) { BookHistoryList = new List<BookHistoryItemVm>() }; foreach (var bookHistory in book.BookHistories.OrderByDescending(h => h.OrderDate).ThenBy(h => h.UserId).ThenByDescending(h => h.Action)) { result.BookHistoryList.Add(new BookHistoryItemVm(bookHistory)); } return result; }
public ActionResult Save(BookHistoryVm book) { if (!ModelState.IsValid) { return View("Edit", book); } try { _service.Save(book); } catch (WarningException exception) { ModelState.AddModelError("", exception.Message); } return Json(new { redirectToUrl = Url.Action("Edit"), id = _service.Get(book.BookCode).Id }); }