コード例 #1
0
        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));
        }
コード例 #2
0
        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"));
        }