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}"); } } } } }
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); }
// 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())); } }
// 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())); } }