Esempio n. 1
0
        private void CreateStockBalance()
        {
            using var db = new BokhandelContext();

            if (!db.Database.CanConnect())
            {
                return;
            }

            var selectedBook = userControlBooks.SelectedBook;

            var stockBalance = new LagerSaldo
            {
                ButikerId = SelectedBookstore.Id,
                Isbn      = selectedBook.Isbn,
                Antal     = (int)numericUpDownAmount.Value
            };

            StockBalance = stockBalance;

            db.LagerSaldo.Add(stockBalance);
            db.SaveChanges();

            numericUpDownAmount.Value = 0;

            OnStockBalanceCreated(EventArgs.Empty);
        }
Esempio n. 2
0
        public void ReloadStockBalance(Butiker bookstore)
        {
            using var db = new BokhandelContext();

            if (!db.Database.CanConnect())
            {
                return;
            }

            selectedBookstore = bookstore;

            dataGridViewStockBalances.Rows.Clear();

            foreach (var book in db.Böcker.Include(book => book.LagerSaldo))
            {
                foreach (var stock in book.LagerSaldo.Where(s => s.ButikerId == bookstore.Id))
                {
                    dataGridViewStockBalances.Rows.Add(
                        stock.ButikerId,
                        book.Isbn,
                        book.Titel,
                        stock.Antal
                        );
                }
            }
        }
Esempio n. 3
0
        private void dataGridViewStockBalances_SelectionChanged(object sender, EventArgs e)
        {
            var row = dataGridViewStockBalances.CurrentRow;

            var storeId = (int)row.Cells[0].Value;
            var isbn    = row.Cells[1].Value.ToString();

            using (var db = new BokhandelContext())
            {
                var stockBalance = db.LagerSaldo
                                   .Include(s => s.Böcker)
                                   .SingleOrDefault(ls => ls.ButikerId == storeId && ls.Isbn == isbn);

                SelectedStockBalance = stockBalance;
            }

            OnSelectionChanged(EventArgs.Empty);

            if (SelectedStockBalance != null)
            {
                labelEditStockBalanceTitle.Text = SelectedStockBalance.Böcker.Titel;
                numericUpDownStockBalance.Value = SelectedStockBalance.Antal;
            }
            else
            {
                labelEditStockBalanceTitle.Text = "Ingen bok vald.";
                numericUpDownStockBalance.Value = 0;
            }
        }
        public void ReloadSelectBooks(Butiker bookstore)
        {
            using var db = new BokhandelContext();

            if (!db.Database.CanConnect())
            {
                return;
            }

            dataGridViewBooks.Rows.Clear();

            foreach (var book in db.Böcker
                     .Include(b => b.LagerSaldo)
                     .Include(b => b.Förlag)
                     .Include(b => b.BöckerFörfattare)
                     .ThenInclude(b => b.Författare)
                     .Where(s => s.LagerSaldo
                            .All(s => s.ButikerId != bookstore.Id)))
            {
                dataGridViewBooks.Rows.Add(
                    book.Isbn,
                    book.Titel,
                    book.Språk,
                    (int)book.Pris,
                    book.Utgivningsdatum.ToShortDateString(),
                    string.Join(", ", book.BöckerFörfattare.Select(b => b.Författare.ToString())),
                    book.Förlag.Namn
                    );
            }
        }
Esempio n. 5
0
        private void buttonOk_Click(object sender, EventArgs e)
        {
            foreach (var control in Controls.OfType <TextBox>())
            {
                if (control.Text.Length == 0)
                {
                    MessageBox.Show(this,
                                    "Ett eller fler fält är tomma.",
                                    "Tomt textfält",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);

                    return;
                }
            }

            using var db = new BokhandelContext();

            if (!db.Database.CanConnect())
            {
                return;
            }

            if (editedPublisher)
            {
                publisherToEdit.Namn          = textBoxName.Text;
                publisherToEdit.Adress        = textBoxAdress.Text;
                publisherToEdit.Stad          = textBoxCity.Text;
                publisherToEdit.Postnummer    = textBoxPostcode.Text;
                publisherToEdit.Kontaktperson = textBoxContactPerson.Text;
                publisherToEdit.Telefonnummer = textBoxPhoneNumber.Text;

                db.Förlag.Update(publisherToEdit);
                db.SaveChanges();

                ParentForm.Close();
            }
            else
            {
                var publisher = new Förlag
                {
                    Namn          = textBoxName.Text,
                    Adress        = textBoxAdress.Text,
                    Stad          = textBoxCity.Text,
                    Postnummer    = textBoxPostcode.Text,
                    Kontaktperson = textBoxContactPerson.Text,
                    Telefonnummer = textBoxPhoneNumber.Text
                };

                Publisher = publisher;

                db.Förlag.Add(publisher);

                db.SaveChanges();

                OnPublisherCreated(EventArgs.Empty);

                ParentForm.Close();
            }
        }
Esempio n. 6
0
        private void UserControlAddOrEditPublishers_Load(object sender, EventArgs e)
        {
            using var db = new BokhandelContext();

            var publishers = db.Förlag;

            ParentForm.AcceptButton = buttonOk;
            ParentForm.CancelButton = buttonCancel;
        }
        private void buttonOk_Click(object sender, EventArgs e)
        {
            foreach (var control in Controls.OfType <TextBox>())
            {
                if (control.Text.Length == 0)
                {
                    MessageBox.Show(this,
                                    "Ett eller fler fält är tomma.",
                                    "Tomt textfält",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);

                    return;
                }
            }

            using var db = new BokhandelContext();

            if (!db.Database.CanConnect())
            {
                return;
            }

            if (editedAuthor)
            {
                authorToEdit.Förnamn      = textBoxFirstname.Text;
                authorToEdit.Efternamn    = textBoxLastname.Text;
                authorToEdit.Födelsedatum = dateTimePickerBirthdate.Value;

                db.Författare.Update(authorToEdit);
                db.SaveChanges();
            }
            else
            {
                var author = new Författare
                {
                    Förnamn      = textBoxFirstname.Text,
                    Efternamn    = textBoxLastname.Text,
                    Födelsedatum = dateTimePickerBirthdate.Value
                };

                Author = author;

                db.Författare.Add(author);
                db.SaveChanges();

                OnAuthorCreated(EventArgs.Empty);
            }

            ParentForm.Close();
        }
        private void dataGridViewAuthors_SelectionChanged(object sender, EventArgs e)
        {
            var row = dataGridViewAuthors.CurrentRow;

            var id = int.Parse(row.Cells[0].Value.ToString());

            using (var db = new BokhandelContext())
            {
                var author = db.Författare
                             .SingleOrDefault(f => f.Id == id);

                SelectedAuthor = author;
            }

            OnSelectionChanged(EventArgs.Empty);
        }
        private void dataGridViewBooks_SelectionChanged(object sender, EventArgs e)
        {
            var row = dataGridViewBooks.CurrentRow;

            var isbn = row.Cells[0].Value.ToString();

            using (var db = new BokhandelContext())
            {
                var book = db.Böcker
                           .SingleOrDefault(ls => ls.Isbn == isbn);

                SelectedBook = book;
            }

            OnSelectionChanged(EventArgs.Empty);
        }
        private void FormMainMenu_Load(object sender, EventArgs e)
        {
            using var db = new BokhandelContext();

            if (!db.Database.CanConnect())
            {
                MessageBox.Show(
                    "Det gick inte att ansluta till databasen.",
                    "Kunde inte ansluta",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);

                return;
            }

            userControlInventory.ReloadInventory();
            userControlBookstores.ReloadBookstores();
            userControlBookstores.ReloadBookstoreInformation();
            userControlStockBalances.ReloadStockBalance(SelectedBookstore);
        }
Esempio n. 11
0
        private void buttonRemoveBook_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show(this,
                                "Vill du ta bort vald bok från lagret?",
                                "Ta bort bok från lager",
                                MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                using var db = new BokhandelContext();

                if (!db.Database.CanConnect())
                {
                    return;
                }

                db.LagerSaldo.Remove(SelectedStockBalance);
                db.SaveChanges();

                ReloadStockBalance(selectedBookstore);
            }
        }
        private void UserControlAddBooks_Load(object sender, EventArgs e)
        {
            ParentForm.AcceptButton = buttonAdd;
            ParentForm.CancelButton = buttonCancel;

            using var db = new BokhandelContext();

            if (!db.Database.CanConnect())
            {
                return;
            }

            foreach (var author in db.Författare)
            {
                comboBoxAuthors.Items.Add(author);
            }

            foreach (var publisher in db.Förlag)
            {
                comboBoxPublishers.Items.Add(publisher);
            }

            if (editedBook)
            {
                db.Attach(bookToEdit);
                db.Entry(bookToEdit).Collection(b => b.BöckerFörfattare).Load();

                foreach (var author in bookToEdit.BöckerFörfattare)
                {
                    listBoxAuthors.Items.Add(author.Författare);
                }

                foreach (Förlag publisher in comboBoxPublishers.Items)
                {
                    if (publisher.Id == bookToEdit.FörlagId)
                    {
                        comboBoxPublishers.SelectedItem = publisher;
                    }
                }
            }
        }
        public void ReloadAuthors()
        {
            using var db = new BokhandelContext();

            if (!db.Database.CanConnect())
            {
                return;
            }

            dataGridViewAuthors.Rows.Clear();

            foreach (var author in db.Författare)
            {
                dataGridViewAuthors.Rows.Add(
                    author.Id,
                    author.Förnamn,
                    author.Efternamn,
                    author.Födelsedatum.ToShortDateString()
                    );
            }
        }
Esempio n. 14
0
        public void ReloadBookstores()
        {
            using var db = new BokhandelContext();

            if (!db.Database.CanConnect())
            {
                return;
            }

            comboBoxBookstores.Items.Clear();

            foreach (var bookstore in db.Butiker)
            {
                comboBoxBookstores.Items.Add(bookstore);
            }

            if (comboBoxBookstores.SelectedItem == null)
            {
                comboBoxBookstores.SelectedIndex = 0;
            }
        }
Esempio n. 15
0
        private void buttonStockBalanceEditConfirm_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show(this,
                                "Vill du ändra saldo på vald bok?",
                                "Ändra lagersaldo för bok",
                                MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                using var db = new BokhandelContext();

                if (!db.Database.CanConnect())
                {
                    return;
                }

                SelectedStockBalance.Antal = (int)numericUpDownStockBalance.Value;

                db.Update(SelectedStockBalance);
                db.SaveChanges();

                ReloadStockBalance(selectedBookstore);
            }
        }
Esempio n. 16
0
        public void ReloadPublishers()
        {
            using var db = new BokhandelContext();

            if (!db.Database.CanConnect())
            {
                return;
            }

            dataGridViewPublishers.Rows.Clear();

            foreach (var publisher in db.Förlag)
            {
                dataGridViewPublishers.Rows.Add(
                    publisher.Id,
                    publisher.Namn,
                    publisher.Adress,
                    publisher.Stad,
                    publisher.Postnummer,
                    publisher.Kontaktperson,
                    publisher.Telefonnummer
                    );
            }
        }
Esempio n. 17
0
        public void ReloadBookstoreInformation()
        {
            using var db = new BokhandelContext();

            if (!db.Database.CanConnect())
            {
                return;
            }

            dataGridViewBookstores.Columns.Clear();
            dataGridViewBookstores.Rows.Clear();

            dataGridViewBookstores.TopLeftHeaderCell.Value = "TYPE";
            dataGridViewBookstores.Columns.Add("INFO", "INFO");

            string[] relevantInfo = { "Namn", "Adress", "Stad", "Postnummer" };

            foreach (string info in relevantInfo)
            {
                DataGridViewRow row = new DataGridViewRow();
                row.HeaderCell.Value = info.ToUpper();

                foreach (var property in comboBoxBookstores.SelectedItem.GetType().GetProperties())
                {
                    if (property.Name == info)
                    {
                        row.CreateCells(
                            dataGridViewBookstores,
                            property.GetValue(comboBoxBookstores.SelectedItem)
                            );
                    }
                }

                dataGridViewBookstores.Rows.Add(row);
            }
        }
Esempio n. 18
0
        private void buttonRemove_Click(object sender, EventArgs e)
        {
            switch (tabControl.SelectedIndex)
            {
            case 0:
                if (MessageBox.Show(this,
                                    "Vill du ta bort vald bok från sortimentet?",
                                    "Ta bort bok från sortiment",
                                    MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    using var db = new BokhandelContext();

                    if (!db.Database.CanConnect())
                    {
                        return;
                    }

                    if (db.LagerSaldo.Any(l => l.Isbn == SelectedBook.Isbn))
                    {
                        MessageBox.Show(this,
                                        "Boken finns i ett lager och kan därför inte tas bort.",
                                        "Kan inte ta bort bok",
                                        MessageBoxButtons.OK, MessageBoxIcon.Warning);

                        return;
                    }

                    foreach (var item in db.BöckerFörfattare.Where(b => b.Isbn == SelectedBook.Isbn))
                    {
                        db.BöckerFörfattare.Remove(item);
                    }

                    db.Böcker.Remove(userControlBooks.SelectedBook);
                    db.SaveChanges();
                    userControlBooks.ReloadBooks();
                }
                break;

            case 1:
                if (MessageBox.Show(this,
                                    "Vill du ta bort vald författare?",
                                    "Ta bort författare",
                                    MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    using var db = new BokhandelContext();

                    if (!db.Database.CanConnect())
                    {
                        return;
                    }

                    if (db.BöckerFörfattare.Any(b => b.FörfattareId == SelectedAuthor.Id))
                    {
                        MessageBox.Show(this,
                                        "Författaren har böcker i sortimentet och kan därför inte tas bort.",
                                        "Kan inte ta bort författare",
                                        MessageBoxButtons.OK, MessageBoxIcon.Warning);

                        return;
                    }

                    db.Författare.Remove(userControlAuthors.SelectedAuthor);
                    db.SaveChanges();
                    userControlAuthors.ReloadAuthors();
                }
                break;

            case 2:
                if (MessageBox.Show(this,
                                    "Vill du ta bort valt förlag?",
                                    "Ta bort förlag",
                                    MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    using var db = new BokhandelContext();

                    if (!db.Database.CanConnect())
                    {
                        return;
                    }

                    if (db.Böcker.Any(b => b.FörlagId == SelectedPublisher.Id))
                    {
                        MessageBox.Show(this,
                                        "Förlaget har böcker i sortimentet och kan därför inte tas bort.",
                                        "Kan inte ta bort förlag",
                                        MessageBoxButtons.OK, MessageBoxIcon.Warning);

                        return;
                    }

                    db.Förlag.Remove(userControlPublishers.SelectedPublisher);
                    db.SaveChanges();
                    userControlPublishers.ReloadPublishers();
                }
                break;
            }
        }
Esempio n. 19
0
        private void UserControlInventory_Load(object sender, EventArgs e)
        {
            using var db = new BokhandelContext();

            buttonAdd.Enabled = db.Database.CanConnect();
        }
Esempio n. 20
0
        private void UserControlStockBalances_Load(object sender, EventArgs e)
        {
            using var db = new BokhandelContext();

            buttonAddBook.Enabled = db.Database.CanConnect();
        }
        private void buttonAdd_Click(object sender, EventArgs e)
        {
            foreach (var control in Controls.OfType <TextBox>())
            {
                if (control.Text.Length == 0)
                {
                    MessageBox.Show(this,
                                    "Ett eller fler fält är tomma.",
                                    "Tomt textfält",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);

                    return;
                }
            }

            if (listBoxAuthors.Items.Count == 0 || comboBoxPublishers.SelectedItem == null)
            {
                MessageBox.Show(this,
                                "Ett eller fler val är tomma.",
                                "Tomt val",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }

            using var db = new BokhandelContext();

            if (!db.Database.CanConnect())
            {
                return;
            }

            if (editedBook)
            {
                bookToEdit.Isbn             = textBoxISBN.Text;
                bookToEdit.Titel            = textBoxTitle.Text;
                bookToEdit.Språk            = textBoxLanguage.Text;
                bookToEdit.Pris             = decimal.Parse(textBoxPrice.Text);
                bookToEdit.Utgivningsdatum  = dateTimePickerPublishingDate.Value;
                bookToEdit.BöckerFörfattare = new List <BöckerFörfattare>();

                foreach (Författare author in listBoxAuthors.Items)
                {
                    bookToEdit.BöckerFörfattare.Add(new BöckerFörfattare
                    {
                        Isbn         = bookToEdit.Isbn,
                        FörfattareId = author.Id
                    });
                }

                foreach (var item in db.BöckerFörfattare)
                {
                    if (item.Isbn == bookToEdit.Isbn)
                    {
                        db.BöckerFörfattare.Remove(item);
                    }
                }

                db.Böcker.Update(bookToEdit);
                db.SaveChanges();

                ParentForm.Close();
            }
            else
            {
                if (db.Böcker.Find(textBoxISBN.Text) == null)
                {
                    var publisher = comboBoxPublishers.SelectedItem as Förlag;

                    var book = new Böcker
                    {
                        Isbn             = textBoxISBN.Text,
                        FörlagId         = publisher.Id,
                        Titel            = textBoxTitle.Text,
                        Språk            = textBoxLanguage.Text,
                        Pris             = decimal.Parse(textBoxPrice.Text),
                        Utgivningsdatum  = dateTimePickerPublishingDate.Value,
                        BöckerFörfattare = new List <BöckerFörfattare>()
                    };

                    foreach (Författare author in listBoxAuthors.Items)
                    {
                        book.BöckerFörfattare.Add(new BöckerFörfattare
                        {
                            Isbn         = book.Isbn,
                            FörfattareId = author.Id
                        });
                    }

                    Book = book;

                    db.Böcker.Add(book);
                    db.SaveChanges();

                    OnBookCreated(EventArgs.Empty);

                    ParentForm.Close();
                }
                else
                {
                    MessageBox.Show(this,
                                    "Boken finns redan i sortimentet.",
                                    "Bok finns redan.",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                }
            }
        }