public async Task <IActionResult> Create(BookVM book) { if (book.Photo == null) { ModelState.AddModelError("", "Zəhmət olmasa şəkil seçin"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } if (!book.Photo.IsImage()) { ModelState.AddModelError("", "Zəhmət olmasa şəkil seçin"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } if (!book.Photo.MaxLength(1024)) { ModelState.AddModelError("", "Faylın ölçüsü 1 MB-dan az olmalıdır"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } string price = Request.Form["Price"]; price = price.Replace('.', ','); decimal originalPrice = 0; originalPrice = decimal.Round(Convert.ToDecimal(price) * 1, 2); Book newBook = new Book { Name = book.Name, Slug = book.Slug, Description = book.Description, Price = originalPrice, Count = book.Count }; Book existBook = _db.Books.FirstOrDefault(b => b.Name.ToLower().Trim() == book.Name.ToLower().Trim()); if (existBook != null) { ModelState.AddModelError("", "Bu kitab mövcuddur"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } newBook.ImagePath = await book.Photo.SaveImg(_env.WebRootPath, "image"); string authorsList = Request.Form["authors"]; if (authorsList == null) { ModelState.AddModelError("", "Zəhmət olmasa yazar seçin"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } List <BookAuthor> bookAuthors = new List <BookAuthor>(); string[] authorArr = authorsList.Split(","); List <int> authorIds = new List <int>(); foreach (string authorId in authorArr) { authorIds.Add(int.Parse(authorId)); } foreach (int id in authorIds) { bookAuthors.Add(new BookAuthor { BookId = newBook.Id, AuthorId = id }); } string categoryList = Request.Form["categories"]; if (categoryList == null) { ModelState.AddModelError("", "Zəhmət olmasa kateqoriya seçin"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } List <BookCategory> bookCategories = new List <BookCategory>(); string[] categoryArr = categoryList.Split(","); List <int> categoryIds = new List <int>(); foreach (string categoryId in categoryArr) { categoryIds.Add(int.Parse(categoryId)); } foreach (int id in categoryIds) { bookCategories.Add(new BookCategory { BookId = newBook.Id, CategoryId = id }); } BookFeature bookFeature = new BookFeature { PublishingPlace = book.PublishingPlace, PublishingDate = book.PublishingDate, PublishingLanguage = book.PublishingLanguage, OriginalLanguage = book.OriginalLanguage, Translator = book.Translator }; string publisherId = Request.Form["publishers"]; Publisher publisher = _db.Publishers.FirstOrDefault(p => p.Id == int.Parse(publisherId)); if (publisher == null) { ModelState.AddModelError("", "Zəhmət olmasa yayın evi seçin"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } publisher.BookCount++; newBook.PublisherId = publisher.Id; newBook.BookAuthors = bookAuthors; newBook.BookCategories = bookCategories; newBook.BookFeature = bookFeature; _db.Books.Add(newBook); await _db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <IActionResult> Edit(int?id, BookVM editedBook) { if (id == null) { return(NotFound()); } Book book = _db.Books.Include(b => b.BookAuthors).ThenInclude(ba => ba.Author).Include(b => b.Publisher).Include(b => b.BookCategories).ThenInclude(bc => bc.Category).Include(b => b.BookFeature).FirstOrDefault(b => b.Id == id); if (book == null) { return(NotFound()); } if (editedBook.Photo == null) { Book existBook = _db.Books.FirstOrDefault(b => b.Name.ToLower().Trim() == editedBook.Book.Name.ToLower().Trim()); if (existBook != null) { if (book.Name.ToLower().Trim() != existBook.Name.ToLower().Trim()) { ModelState.AddModelError("", "Bu kitab mövcuddur"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Book = book, Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } } string price = Request.Form["Book.Price"]; price = price.Replace('.', ','); decimal originalPrice = 0; originalPrice = decimal.Round(Convert.ToDecimal(price) * 1, 2); book.Name = editedBook.Book.Name; book.Slug = editedBook.Book.Slug; book.Count = editedBook.Book.Count; book.Price = originalPrice; book.Description = editedBook.Book.Description; string authorsList = Request.Form["authors"]; if (authorsList == null) { ModelState.AddModelError("", "Zəhmət olmasa yazar seçin"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Book = book, Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } List <BookAuthor> bookAuthors = new List <BookAuthor>(); string[] authorArr = authorsList.Split(","); List <int> authorIds = new List <int>(); foreach (string authorId in authorArr) { authorIds.Add(int.Parse(authorId)); } foreach (int authorId in authorIds) { bookAuthors.Add(new BookAuthor { BookId = book.Id, AuthorId = authorId }); } string categoryList = Request.Form["categories"]; if (categoryList == null) { ModelState.AddModelError("", "Zəhmət olmasa kateqoriya seçin"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Book = book, Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } List <BookCategory> bookCategories = new List <BookCategory>(); string[] categoryArr = categoryList.Split(","); List <int> categoryIds = new List <int>(); foreach (string categoryId in categoryArr) { categoryIds.Add(int.Parse(categoryId)); } foreach (int categoryId in categoryIds) { bookCategories.Add(new BookCategory { BookId = book.Id, CategoryId = categoryId }); } BookFeature bookFeature = new BookFeature { PublishingPlace = editedBook.Book.BookFeature.PublishingPlace, PublishingDate = editedBook.Book.BookFeature.PublishingDate, PublishingLanguage = editedBook.Book.BookFeature.PublishingLanguage, OriginalLanguage = editedBook.Book.BookFeature.OriginalLanguage, Translator = editedBook.Book.BookFeature.Translator }; Publisher oldPublisher = new Publisher(); Publisher newPublisher = new Publisher(); string publisherId = Request.Form["publishers"]; if (book.PublisherId != int.Parse(publisherId)) { oldPublisher = _db.Publishers.FirstOrDefault(p => p.Id == book.PublisherId); oldPublisher.BookCount--; newPublisher = _db.Publishers.FirstOrDefault(p => p.Id == int.Parse(publisherId)); newPublisher.BookCount++; book.PublisherId = newPublisher.Id; } book.BookAuthors = bookAuthors; book.BookCategories = bookCategories; book.BookFeature = bookFeature; await _db.SaveChangesAsync(); return(RedirectToAction("Index")); } else { if (!editedBook.Photo.IsImage()) { ModelState.AddModelError("", "Zəhmət olmasa şəkil seçin"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Book = book, Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } if (!editedBook.Photo.MaxLength(1024)) { ModelState.AddModelError("", "Faylın ölçüsü 1 MB-dan az olmalıdır"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Book = book, Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } Book existBook = _db.Books.FirstOrDefault(b => b.Name.ToLower().Trim() == editedBook.Book.Name.ToLower().Trim()); if (existBook != null) { if (book.Name.ToLower().Trim() != existBook.Name.ToLower().Trim()) { ModelState.AddModelError("", "Bu kitab mövcuddur"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Book = book, Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } } Helpers.Helper.DeleteImg(_env.WebRootPath, "image", book.ImagePath); book.ImagePath = await editedBook.Photo.SaveImg(_env.WebRootPath, "image"); string price = Request.Form["Book.Price"]; price = price.Replace('.', ','); decimal originalPrice = 0; originalPrice = decimal.Round(Convert.ToDecimal(price) * 1, 2); book.Name = editedBook.Book.Name; book.Slug = editedBook.Book.Slug; book.Count = editedBook.Book.Count; book.Price = originalPrice; book.Description = editedBook.Book.Description; string authorsList = Request.Form["authors"]; if (authorsList == null) { ModelState.AddModelError("", "Zəhmət olmasa yazar seçin"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Book = book, Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } List <BookAuthor> bookAuthors = new List <BookAuthor>(); string[] authorArr = authorsList.Split(","); List <int> authorIds = new List <int>(); foreach (string authorId in authorArr) { authorIds.Add(int.Parse(authorId)); } foreach (int authorId in authorIds) { bookAuthors.Add(new BookAuthor { BookId = book.Id, AuthorId = authorId }); } string categoryList = Request.Form["categories"]; if (categoryList == null) { ModelState.AddModelError("", "Zəhmət olmasa kateqoriya seçin"); List <Author> authors = _db.Authors.ToList(); List <Category> categories = _db.Categories.ToList(); List <Publisher> publishers = _db.Publishers.ToList(); BookVM model = new BookVM { Book = book, Authors = authors, Categories = categories, Publishers = publishers }; return(View(model)); } List <BookCategory> bookCategories = new List <BookCategory>(); string[] categoryArr = categoryList.Split(","); List <int> categoryIds = new List <int>(); foreach (string categoryId in categoryArr) { categoryIds.Add(int.Parse(categoryId)); } foreach (int categoryId in categoryIds) { bookCategories.Add(new BookCategory { BookId = book.Id, CategoryId = categoryId }); } BookFeature bookFeature = new BookFeature { PublishingPlace = editedBook.Book.BookFeature.PublishingPlace, PublishingDate = editedBook.Book.BookFeature.PublishingDate, PublishingLanguage = editedBook.Book.BookFeature.PublishingLanguage, OriginalLanguage = editedBook.Book.BookFeature.OriginalLanguage, Translator = editedBook.Book.BookFeature.Translator }; Publisher oldPublisher = new Publisher(); Publisher newPublisher = new Publisher(); string publisherId = Request.Form["publishers"]; if (book.PublisherId != int.Parse(publisherId)) { oldPublisher = _db.Publishers.FirstOrDefault(p => p.Id == book.PublisherId); oldPublisher.BookCount--; newPublisher = _db.Publishers.FirstOrDefault(p => p.Id == int.Parse(publisherId)); newPublisher.BookCount++; book.PublisherId = newPublisher.Id; } book.BookAuthors = bookAuthors; book.BookCategories = bookCategories; book.BookFeature = bookFeature; await _db.SaveChangesAsync(); return(RedirectToAction("Index")); } }