public static void SimpleAddBooks(List<NewBook> books)
        {
            var transaction = new TransactionScope(TransactionScopeOption.Required,
                new TransactionOptions() { IsolationLevel = IsolationLevel.RepeatableRead });
            using (transaction)
            {
                var bookstoreDb = new BookstoreDbContext();

                foreach (var book in books)
                {
                    var newBook = new Book
                    {
                        Title = book.Title,                        
                        WebSite = book.WebSite,
                        Price = book.Price,
                        ISBN = book.ISBN,
                        Authors = GetOrCreateAuthors(book.Authors, bookstoreDb),
                        Reviews = ReviewsAuthorsValidate(book.Reviews, bookstoreDb)
                    };

                    bookstoreDb.Books.Add(newBook);
                }

                bookstoreDb.SaveChanges();
                transaction.Complete();
            }

        }
Exemple #2
0
        public static void ImportBooksAndAuthors(string bookTitle, string isbn,
            string author, decimal? price, string webSite)
        {
            using (BookstoreEntities dbContext = new BookstoreEntities())
            {
                Book newBook = new Book()
                {
                    Title = bookTitle.ToLower(),
                    ISBN = isbn,
                    Price = price,
                    website = webSite,
                };

                Author bookAutor = CreateOrLoadAuthor(dbContext, author);
                newBook.Authors.Add(bookAutor);

                dbContext.Books.Add(newBook);
                dbContext.SaveChanges();
            }
        }
Exemple #3
0
        public static void ImportBooksAuthorsAndReviews(string bookTitle, string isbn,
            decimal? price, string webSite, List<string> authorsNames, List<ReviewData> reviewsData)
        {
            using (BookstoreEntities dbContext = new BookstoreEntities())
            {
                Book newBook = new Book
                {
                    Title = bookTitle.ToLower(),
                    ISBN = isbn,
                    Price = price,
                    website = webSite,
                };

                foreach (string authorName in authorsNames)
                {
                    Author bookAutor = CreateOrLoadAuthor(dbContext, authorName);
                    newBook.Authors.Add(bookAutor);
                }

                foreach (ReviewData reviewData in reviewsData)
                {
                    Review newReview = new Review()
                    {
                        Content = reviewData.Content,
                        CreationDate = reviewData.Date,
                    };

                    if (reviewData.AuthorName != null)
                    {
                        newReview.Author = CreateOrLoadAuthor(dbContext, reviewData.AuthorName);
                    }

                    newBook.Reviews.Add(newReview);
                }

                dbContext.Books.Add(newBook);
                dbContext.SaveChanges();
            }
        }