示例#1
0
 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 });
 }
示例#2
0
 public BookEditVm(BookHistoryVm model)
 {
     BookId = model.BookId;
     Code = model.BookCode;
     Author = model.BookAuthor;
     Title = model.BookTitle;
     Description = model.BookDescription;
 }
示例#3
0
 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);
 }
示例#4
0
 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
             });
         }
     }
 }
示例#5
0
        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);
        }
示例#6
0
 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;
 }
示例#7
0
 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 });
 }