public static Boolean DeleteBook(TempBook book)
        {
            using (var context = new EFDtataAccessLibary.DataAccess.GewertsContext())
            {
                var books = context.Böckers.First(a => a.Isbn == book.ISBN);


                while (context.FörfattareBöckers.Any(a => a.Isbn == book.ISBN))
                {
                    var authorBook = context.FörfattareBöckers.First(a => a.Isbn == book.ISBN);

                    context.Remove(authorBook);
                    context.SaveChanges();
                }

                while (context.LagerSaldos.Any(b => b.Isbn == book.ISBN))
                {
                    var quantity = context.LagerSaldos.First(a => a.Isbn == book.ISBN);
                    context.Remove(quantity);
                    context.SaveChanges();
                }

                context.Remove(books);
                context.SaveChanges();

                return(true);
            }
        }
        public static Boolean AddBook(TempBook book)
        {
            using (var context = new EFDtataAccessLibary.DataAccess.GewertsContext())
            {
                int stores       = context.Butikers.Count();
                var books        = context.Böckers.ToList();
                var booksAuthors = context.FörfattareBöckers.ToList();
                var quantitys    = context.LagerSaldos.ToList();
                EFDtataAccessLibary.Models.Böcker bookToAdd = new EFDtataAccessLibary.Models.Böcker();

                EFDtataAccessLibary.Models.LagerSaldo quantityToAdd = new EFDtataAccessLibary.Models.LagerSaldo();

                for (int i = 0; i < books.Count; i++)
                {
                    if (book.ISBN == books[i].Isbn)
                    {
                        return(false);
                    }
                }

                bookToAdd.Isbn            = book.ISBN;
                bookToAdd.Titel           = book.Title;
                bookToAdd.Språk           = book.Language;
                bookToAdd.Pris            = book.Price;
                bookToAdd.Utgivningsdatum = book.ReleaseDay;
                bookToAdd.BokförlagNamn   = book.Publisher.Namn;
                context.Böckers.Add(bookToAdd);

                for (int i = 0; i < book.NewAuthors.Count; i++)
                {
                    EFDtataAccessLibary.Models.FörfattareBöcker booksAuthorsToAdd = new EFDtataAccessLibary.Models.FörfattareBöcker();
                    booksAuthorsToAdd.Isbn         = book.ISBN;
                    booksAuthorsToAdd.FörfattareId = book.NewAuthors[i].Id;
                    context.FörfattareBöckers.Add(booksAuthorsToAdd);
                    context.SaveChanges();
                }

                for (int i = 0; i < stores; i++)
                {
                    quantityToAdd.Antal    = 0;
                    quantityToAdd.Isbn     = book.ISBN;
                    quantityToAdd.ButiksId = i + 1;

                    context.LagerSaldos.Add(quantityToAdd);
                    context.SaveChanges();
                }

                context.SaveChanges();

                return(true);
            }
        }
        public static Boolean UpdateBook(TempBook book)
        {
            using (var context = new EFDtataAccessLibary.DataAccess.GewertsContext())
            {
                var books         = context.Böckers.FirstOrDefault(a => a.Isbn == book.ISBN);
                var authorsWBooks = context.FörfattareBöckers.ToList();

                books.Isbn            = book.ISBN;
                books.Titel           = book.Title;
                books.Språk           = book.Language;
                books.Pris            = book.Price;
                books.Utgivningsdatum = book.ReleaseDay;
                books.BokförlagNamn   = book.Publisher.Namn;

                authorsWBooks[0].FörfattareId = book.NewAuthors[0].Id;

                if (book.NewAuthors.Count == 1 && book.Authors.Count > 1)
                {
                    var author = authorsWBooks.First(a => a.FörfattareId == book.Authors[1].Id);
                    context.FörfattareBöckers.Remove(author);

                    if (book.Authors.Count == 3)
                    {
                        var author2 = authorsWBooks.First(a => a.FörfattareId == book.Authors[2].Id);
                        context.FörfattareBöckers.Remove(author2);
                    }
                }

                if (book.NewAuthors.Count >= 2)
                {
                    if (book.Authors.Count >= 2 && authorsWBooks[1].Isbn == book.ISBN)
                    {
                        authorsWBooks[1].FörfattareId = book.NewAuthors[1].Id;

                        if (book.Authors.Count > 2 && book.NewAuthors.Count > 2)
                        {
                            var author = authorsWBooks.First(a => a.FörfattareId == book.Authors[2].Id);
                            context.FörfattareBöckers.Remove(author);
                        }
                    }
                    else
                    {
                        EFDtataAccessLibary.Models.FörfattareBöcker fb = new EFDtataAccessLibary.Models.FörfattareBöcker();
                        fb.Isbn         = book.ISBN;
                        fb.FörfattareId = book.NewAuthors[1].Id;

                        context.FörfattareBöckers.Add(fb);
                    }

                    if (book.NewAuthors.Count == 3)
                    {
                        if (book.Authors.Count >= 3 && authorsWBooks[2].Isbn == book.ISBN)
                        {
                            authorsWBooks[2].FörfattareId = book.NewAuthors[2].Id;
                        }
                        else
                        {
                            EFDtataAccessLibary.Models.FörfattareBöcker fb = new EFDtataAccessLibary.Models.FörfattareBöcker();
                            fb.Isbn         = book.ISBN;
                            fb.FörfattareId = book.NewAuthors[2].Id;

                            context.FörfattareBöckers.Add(fb);
                        }
                    }
                }

                context.SaveChanges();

                return(true);
            }
        }