Ejemplo n.º 1
0
        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;
                }
            }
        }
Ejemplo n.º 2
0
 static void PrintCultures(BookLanguage language)
 {
     Console.WriteLine("Cultures for {0}:", language);
     foreach (string culture in language.GetCultures())
     {
         Console.WriteLine("\t" + culture);
     }
 }
Ejemplo n.º 3
0
 /// <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));
        }
Ejemplo n.º 5
0
 public void Add(BookLanguage bookLanguage)
 {
     BaseDao.Add("AddBookLanguage", bookLanguage);
 }
Ejemplo n.º 6
0
 public void Add(BookLanguage bookLanguage)
 {
     this._bookLanguageDao.Add(bookLanguage);
 }