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); }
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 ); } } }
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 ); } }
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(); } }
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); }
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() ); } }
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; } }
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); } }
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 ); } }
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); } }
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; } }
private void UserControlInventory_Load(object sender, EventArgs e) { using var db = new BokhandelContext(); buttonAdd.Enabled = db.Database.CanConnect(); }
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); } } }