public async Task <IActionResult> BookList(int?Id, int?Mb) { List <Book> books = await database.Books.Where(book => book.OwnerId == 0 || book.OwnerId == null).ToListAsync(); int UserId = Id ?? 0; int MaxBooks = Mb ?? 4; if (books.Count == 0) { return(Content("<p>Свободные книги отсутствуют</p>")); } List <BookSelectViewModel> booksForSelection = GetBooksForViewModel(books, UserId); UserBookListViewModel ListForDisplay = new UserBookListViewModel(booksForSelection, MaxBooks); return(PartialView(ListForDisplay)); }
public async Task <IActionResult> BookList(UserBookListViewModel model) { model.MaxBooks += model.BooksForSelection.Count; if (!TryValidateModel(model)) { ModelState.AddModelError(String.Empty, "Ошибка создания списка книг или превышено максимальное число книг для данного пользователя"); TempData["BookList_Errors"] = (from item in ModelState.Root.Errors select item.ErrorMessage).ToList(); return(RedirectToAction("Details", new { Id = model.BooksForSelection[0].OwnerId })); } else { TempData.Remove("BookList_Errors"); } List <Book> books = new List <Book>(model.BooksForSelection.FindAll(elem => elem.IsSelected == true)); database.UpdateRange(books); await database.SaveChangesAsync(); return(RedirectToAction("Users")); }