Example #1
0
        public override void AddBook(string bookTitle, int publicationYear, string publishingHouse, string authorName, int genreId, int number, decimal price)
        {
            using (db = new bookstoreEntities())
            {
                Log("Выходные данные", "Entity Framework.", true);
                using (var transaction = db.Database.BeginTransaction())
                {
                    Log("Информация", "Начало транзакции для операции добавления новой книги.");
                    try
                    {
                        int bookId;
                        if (CheckIsBookExist(bookTitle, publicationYear, publishingHouse))
                        {
                            bookId = GetBookId(bookTitle, publicationYear, publishingHouse);
                            Log("Выходные данные", "Добавляемая книга уже существует.", true);
                            UpdateBookNumber(bookId, number, DateTime.Now);
                        }
                        else
                        {
                            bookId = InsertBook(
                                bookTitle,
                                publicationYear,
                                publishingHouse,
                                price,
                                number,
                                DateTime.Now,
                                DateTime.Now);
                        }

                        int authorId = CheckIsAuthorExistAndGetId(authorName);

                        if (!CheckIsBookAuthorRelationExist(bookId, authorId))
                        {
                            CreateBookAuthorRelation(bookId, authorId, DateTime.Now, DateTime.Now);
                        }
                        if (!CheckIsBookGenreRelationExist(bookId, genreId))
                        {
                            CreateBookGenreRelation(bookId, genreId, DateTime.Now, DateTime.Now);
                        }
                        transaction.Commit();
                        Log("Информация", "Данные сохранены");
                    }
                    catch (Exception e)
                    {
                        Log("Ошибка", $"Произошла ошибка во время выполнения транзакции: {e.Message}");
                        try
                        {
                            transaction.Rollback();
                            Log("Информация", "Данные не сохранены.Откат данных.");
                        }
                        catch (Exception rollbackException)
                        {
                            Log("Ошибка", $"Ошибка при попытке отката данных. {rollbackException.Message}");
                        }
                    }
                }
            }
        }
Example #2
0
        public override Dictionary <int, string> GetGenres()
        {
            Log("Информация", "Запрос к БД на получение всех жанров.");
            Dictionary <int, string> res = new Dictionary <int, string>();

            using (db = new bookstoreEntities())
            {
                var genres = db.Genre;
                foreach (var genre in genres)
                {
                    res.Add(genre.Id, genre.Title);
                }
            }

            return(res);
        }
Example #3
0
        // GET: AuthorPublisherSearch
        public ActionResult Index(string search, string option)
        {
            bookstoreEntities db = new bookstoreEntities();

            System.Data.Entity.Core.Objects.ObjectResult <sp_searchauthororpublisher1_Result> rows = db.sp_searchauthororpublisher1();
            if (option == "Author")
            {
                return(View(rows.Where(m => m.Name_of_Author.Contains(search)).ToList()));
            }
            if (option == "Publisher")
            {
                return(View(rows.Where(m => m.Name_of_Publisher.Contains(search)).ToList()));
            }
            else
            {
                return(View(rows.ToList()));
            }
        }
Example #4
0
        // GET: Languages
        public ActionResult Index(string search, string option)
        {
            bookstoreEntities db = new bookstoreEntities();
            var rows             = db.sp_searchlanguage();

            if (option == "LangMag")
            {
                return(View(rows.Where(m => m.Language_Magazine.Contains(search)).ToList()));
            }
            if (option == "LangBook")
            {
                return(View(rows.Where(m => m.Language_book.Contains(search)).ToList()));
            }
            else
            {
                return(View(rows.ToList()));
            }
        }