public WhenIsbnScannedCalled() { _findBookQueryHandlerMock = new Mock <IQueryHandler <FindBookQuery, IList <Book> > >(); _booksHub = new BooksHub(new Mock <IQueryHandler <GetLibraryStateQuery, LibraryState> >().Object, _findBookQueryHandlerMock.Object, new Mock <IQueryHandler <AddNewBookQuery, bool> >().Object); _clientsMock = new Mock <IHubCallerConnectionContext <dynamic> >(); _booksHub.Clients = _clientsMock.Object; }
public ActionResult Edit(BookEditViewModel viewModel) { var updatedbook = db.Books.Include(c => c.BookImageMappings).Where(c => c.Id == viewModel.Id).Single(); PopulateAllDropDownLists(updatedbook.AuthorId, updatedbook.PublisherId, updatedbook.GenreId); if (TryUpdateModel(updatedbook, "", new string[] { "Code", "Title", "Description", "Isbn", "ReleaseDate", "Pages", "AuthorId", "PublisherId", "GenreId", "Price", "Availability" })) { if (updatedbook.BookImageMappings == null) { updatedbook.BookImageMappings = new List <BookImageMapping>(); } string[] bookImages = viewModel.BookImages.Where(c => !string.IsNullOrEmpty(c)).ToArray(); for (int i = 0; i < bookImages.Length; i++) { var imageMappingForEdit = updatedbook.BookImageMappings.Where(c => c.ImageNumber == i).FirstOrDefault(); var image = db.BookImages.Find(int.Parse(bookImages[i])); if (imageMappingForEdit == null) { updatedbook.BookImageMappings.Add(new BookImageMapping { ImageNumber = i, BookImage = image, BookImageId = image.Id }); } else { if (imageMappingForEdit.BookImageId != int.Parse(bookImages[i])) { imageMappingForEdit.BookImage = image; } } } for (int i = bookImages.Length; i < Constants.NumberOfProductImages; i++) { var imageMappingForEdit = updatedbook.BookImageMappings.Where(c => c.ImageNumber == i).FirstOrDefault(); if (imageMappingForEdit != null) { db.BookImageMappings.Remove(imageMappingForEdit); } } db.SaveChanges(); BooksHub.BroadcastData(); return(RedirectToAction("Index")); } return(View(viewModel)); }
public ActionResult DeleteConfirmed(int id) { Book book = db.Books.Find(id); var orderLinesCount = db.OrderLines.Where(a => a.BookId == book.Id).Count(); if (orderLinesCount == 0) { db.Books.Remove(book); db.SaveChanges(); } else { db.Entry(book).State = EntityState.Modified; book.Availability = Enums.Availability.Unavailable; db.SaveChanges(); } BooksHub.BroadcastData(); return(RedirectToAction("Index")); }
public ActionResult Create(BookViewModel viewModel) { Book book = new Book(); book.AuthorId = viewModel.AuthorId; book.Code = viewModel.Code; book.Description = viewModel.Description; book.GenreId = viewModel.GenreId; book.Isbn = viewModel.Isbn; book.Pages = viewModel.Pages; book.Price = viewModel.Price; book.PublisherId = viewModel.PublisherId; book.ReleaseDate = viewModel.ReleaseDate; book.Title = viewModel.Title; book.BookImageMappings = new List <BookImageMapping>(); string[] bookImages = viewModel.BookImages.Where(c => !string.IsNullOrEmpty(c)).ToArray(); for (int i = 0; i < bookImages.Length; i++) { book.BookImageMappings.Add(new BookImageMapping { BookImage = db.BookImages.Find(int.Parse(bookImages[i])), ImageNumber = i }); } if (ModelState.IsValid) { db.Books.Add(book); db.SaveChanges(); BooksHub.BroadcastData(); return(RedirectToAction("Index")); } viewModel.AuthorList = new SelectList(db.Authors, "Id", "FullName", book.AuthorId); viewModel.GenreList = new SelectList(db.Genres, "Id", "Title", book.GenreId); viewModel.PublisherList = new SelectList(db.Publishers, "Id", "Name", book.PublisherId); viewModel.ImageLists = new List <SelectList>(); for (int i = 0; i < Constants.NumberOfProductImages; i++) { viewModel.ImageLists.Add(new SelectList(db.BookImages, "Id", "FileName", viewModel.BookImages[i])); } return(View(viewModel)); }