public void Add(BookViewModel bookViewModel) { var result = mapper.Map <Book>(bookViewModel); var genre = unitOfWork.Get <int, Genre>(result.GenreId); result.Genre = genre; using (var transaction = unitOfWork.BeginTransaction()) { try { result.BookLanguages = new List <BookLanguage>(); if (bookViewModel.LanguageIds != null) { foreach (int languageId in bookViewModel.LanguageIds) { var bookLanguage = new BookLanguage() { BookId = result.Id, LanguageId = languageId }; result.BookLanguages.Add(bookLanguage); unitOfWork.Add <int, BookLanguage>(bookLanguage); } } unitOfWork.Add <int, Book>(result); unitOfWork.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } }
static void PrintCultures(BookLanguage language) { Console.WriteLine("Cultures for {0}:", language); foreach (string culture in language.GetCultures()) { Console.WriteLine("\t" + culture); } }
/// <summary> /// Получение культур из переданных атрибутов /// </summary> /// <param name="language">Перечисление BookLanguage</param> /// <returns>Массив культур</returns> public static string[] GetCultures(this BookLanguage language) { // Note: Этот код будет работать только для жанров с единственным значением CultureAttribute[] cultureAttributes = (CultureAttribute[])language.GetType().GetField(language.ToString()).GetCustomAttributes(typeof(CultureAttribute), false); string[] cultures = new string[cultureAttributes.Length]; for (int i = 0; i < cultureAttributes.Length; i++) { cultures[i] = cultureAttributes[i].Culture; } return(cultures); }
public ActionResult Edit([Bind(Include = "Book_Id,Book_Name,ISBN_Number,Book_Desription,User_Id")] BookCorrect bookCorrect) { if (ModelState.IsValid) { if (bookCorrect.ISBN_Number.All(Char.IsLetter)) { ModelState.AddModelError("", "ISBN is not valid. No letters in ISBN number"); return(View(bookCorrect)); } db.Entry(bookCorrect).State = EntityState.Modified; if (Request.Form["ChoosenAuthors"] != null) { string choosenAuthors = Request.Form["ChoosenAuthors"].ToString(); string[] authorsNames = choosenAuthors.Split(','); List <BookAuthor> authorsNew = new List <BookAuthor>(); foreach (var item in db.Author) { BookAuthor bookAuthor = new BookAuthor(); for (int i = 0; i < authorsNames.Length; i++) { if (authorsNames[i].Equals(item.Author_Name)) { bookAuthor.Author = item; bookAuthor.Author_Id = item.Author_Id; bookAuthor.BookCorrect = bookCorrect; bookAuthor.BookAuthor_Id = bookCorrect.Book_Id; authorsNew.Add(bookAuthor); } } } foreach (BookAuthor bookAuthor in db.BookAuthor) { if (bookAuthor.Book_Id == bookCorrect.Book_Id) { bookCorrect.BookAuthor.Remove(bookAuthor); db.BookAuthor.Remove(bookAuthor); } } db.SaveChanges(); foreach (BookAuthor choosen in authorsNew) { db.BookAuthor.Add(choosen); bookCorrect.BookAuthor.Add(choosen); } } else { foreach (BookAuthor bookAuthor in db.BookAuthor) { if (bookAuthor.Book_Id == bookCorrect.Book_Id) { bookCorrect.BookAuthor.Remove(bookAuthor); db.BookAuthor.Remove(bookAuthor); } } } if (Request.Form["ChoosenGenres"] != null) { string choosenGenres = Request.Form["ChoosenGenres"].ToString(); string[] genreNames = choosenGenres.Split(','); List <BookGenre> genresNew = new List <BookGenre>(); foreach (var item in db.Genre) { BookGenre bookGenre = new BookGenre(); for (int i = 0; i < genreNames.Length; i++) { if (genreNames[i].Equals(item.Genre_Name)) { bookGenre.BookCorrect = bookCorrect; bookGenre.Genre = item; bookGenre.Book_Id = bookCorrect.Book_Id; bookGenre.Genre_Id = item.Genre_Id; genresNew.Add(bookGenre); } } } foreach (BookGenre bookGenre in db.BookGenre) { if (bookGenre.Book_Id == bookCorrect.Book_Id) { bookCorrect.BookGenre.Remove(bookGenre); db.BookGenre.Remove(bookGenre); } } db.SaveChanges(); foreach (BookGenre bookGenre in genresNew) { db.BookGenre.Add(bookGenre); bookCorrect.BookGenre.Add(bookGenre); } } else { foreach (BookGenre bookGenre in db.BookGenre) { if (bookGenre.Book_Id == bookCorrect.Book_Id) { bookCorrect.BookGenre.Remove(bookGenre); db.BookGenre.Remove(bookGenre); } } } if (Request.Form["Language"] != null) { string nameOfLanguage = Request.Form["Language"].ToString(); List <BookLanguage> languageNew = new List <BookLanguage>(); foreach (var item in db.Language) { BookLanguage bookLanguage = new BookLanguage(); if (nameOfLanguage.Equals(item.Language_Name)) { bookLanguage.Language = item; bookLanguage.Book_Id = bookCorrect.Book_Id; bookLanguage.BookCorrect = bookCorrect; bookLanguage.Language_Id = item.Language_Id; languageNew.Add(bookLanguage); } } foreach (BookLanguage bookLanguage in db.BookLanguage) { if (bookLanguage.Book_Id == bookCorrect.Book_Id) { db.BookLanguage.Remove(bookLanguage); } } db.SaveChanges(); foreach (BookLanguage bookLanguage in languageNew) { db.BookLanguage.Add(bookLanguage); bookCorrect.BookLanguage.Add(bookLanguage); } } else { foreach (BookLanguage bookLanguage in db.BookLanguage) { if (bookLanguage.Book_Id == bookCorrect.Book_Id) { db.BookLanguage.Remove(bookLanguage); } } } db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.User_Id = new SelectList(db.LibraryUser, "User_Id", "Username", bookCorrect.User_Id); return(View(bookCorrect)); }
public void Add(BookLanguage bookLanguage) { BaseDao.Add("AddBookLanguage", bookLanguage); }
public void Add(BookLanguage bookLanguage) { this._bookLanguageDao.Add(bookLanguage); }