private async void btnZapisz_Click(object sender, EventArgs e) { if (ValidujFormularz()) { using (var db = new LicznikDataModel()) { Produkt nowyProdukt = new Produkt { NazwaProduktu = txtNazwaProduktu.Text, NazwaElementu = txtNazwaElementu.Text }; db.Produkt.Add(nowyProdukt); try { await db.SaveChangesAsync(); this.DialogResult = DialogResult.OK; this.Close(); } catch (System.Data.Entity.Infrastructure.DbUpdateException) { MessageBox.Show("Próbujesz dodać produkt, który już istnieje w bazie danych.", "Uwaga!", MessageBoxButtons.OK, MessageBoxIcon.Error); this.DialogResult = DialogResult.Abort; this.Close(); } } } }
/// <summary> /// Ustawia stan obecny maszyny /// </summary> /// <param name="stan">Nowy stan maszyny</param> private async void UstawStan(TypZdarzenia nowyStan) { //Zapisz obecny stan switch (nowyStan.NazwaZdarzenia) { case "Przezbrojenie": DanePrzezbrojeniaForm nowePrzezbrojenieForm = new DanePrzezbrojeniaForm(); DialogResult wynik = nowePrzezbrojenieForm.ShowDialog(); if (wynik == DialogResult.OK) { this.ObecnieProdukowanyProdukt = nowePrzezbrojenieForm.ObecnyProdukt; this.ObecnieProdukowanyKolor = nowePrzezbrojenieForm.ObecnyKolor; Przezbrojenie nowePrzezbrojenie = new Przezbrojenie { GodzinaUruchomienia = CzasUruchomienia, CzasTrwania = this.CzasTrwania, TypZdarzenia = ObecnyStan, Brygada = this.Brygada, LiniaProdukcyjna = this.LiniaProdukcyjna, Produkt = this.ObecnieProdukowanyProdukt, Kolor = this.ObecnieProdukowanyKolor }; db.Przezbrojenia.Add(nowePrzezbrojenie); await db.SaveChangesAsync(); ObecnyStan = nowyStan; } break; case "Awaria": break; default: break; } if (ObecnyStan != null) { if (ObecnyStan.NazwaZdarzenia == "Nieokreślony" && nowyStan.NazwaZdarzenia != "Produkcja") { // jeżeli ObecnyStan to "Nieokreślony" a nowyStan to nie "Produkcja" zmieniamy Obecny stan bez zapisywania w bazie. ObecnyStan = nowyStan; UpdateStateLabels(ObecnyStan.NazwaZdarzenia, CzasUruchomienia, CzasTrwania); cmbStan.SelectedIndex = -1; btnZmienStan.Enabled = false; } else if (ObecnyStan.NazwaZdarzenia == "Awaria") { // typ ObecnyStan do zapisania to awaria zapisujemy obiekt awarii Awaria nowaAwaria = new Awaria { GodzinaUruchomienia = CzasUruchomienia, CzasTrwania = this.CzasTrwania, TypZdarzenia = ObecnyStan, Brygada = this.Brygada, LiniaProdukcyjna = this.LiniaProdukcyjna, Produkt = this.ObecnieProdukowanyProdukt, Kolor = this.ObecnieProdukowanyKolor }; // ustawiam nowy stan obecny DateTime godz = DateTime.Now; ObecnyStan = nowyStan; CzasUruchomienia = DateTime.Now; UpdateStateLabels(ObecnyStan.NazwaZdarzenia, CzasUruchomienia, CzasTrwania); // zerowanie stanu formularza CzasTrwania = 0; cmbStan.SelectedIndex = -1; btnZmienStan.Enabled = false; db.Awaria.Add(nowaAwaria); await db.SaveChangesAsync(); PopulateDgvListaZdarzen(); } else if (ObecnyStan.NazwaZdarzenia == "Przezbrojenie") { // typ ObecnyStan to Przezbrojenie zapisujemy obiekt przezbrojenie Przezbrojenie nowePrzezbrojenie = new Przezbrojenie { GodzinaUruchomienia = CzasUruchomienia, CzasTrwania = this.CzasTrwania, TypZdarzenia = ObecnyStan, Brygada = this.Brygada, LiniaProdukcyjna = this.LiniaProdukcyjna, Produkt = this.ObecnieProdukowanyProdukt, Kolor = this.ObecnieProdukowanyKolor }; // ustawiam nowy stan obecny DateTime godz = DateTime.Now; ObecnyStan = nowyStan; CzasUruchomienia = DateTime.Now; UpdateStateLabels(ObecnyStan.NazwaZdarzenia, CzasUruchomienia, CzasTrwania); // zerowanie stanu formularza CzasTrwania = 0; cmbStan.SelectedIndex = -1; btnZmienStan.Enabled = false; db.Przezbrojenia.Add(nowePrzezbrojenie); await db.SaveChangesAsync(); PopulateDgvListaZdarzen(); } else { // zapisujemy stan obecny Stan stanDoZapisania = new Stan { GodzinaUruchomienia = CzasUruchomienia, CzasTrwania = this.CzasTrwania, TypZdarzenia = ObecnyStan, Brygada = this.Brygada, LiniaProdukcyjna = this.LiniaProdukcyjna }; // ustawiam nowy stan obecny ObecnyStan = nowyStan; CzasUruchomienia = DateTime.Now; UpdateStateLabels(ObecnyStan.NazwaZdarzenia, CzasUruchomienia, CzasTrwania); // zerowanie stanu formularza CzasTrwania = 0; cmbStan.SelectedIndex = -1; btnZmienStan.Enabled = false; db.Stan.Add(stanDoZapisania); await db.SaveChangesAsync(); PopulateDgvListaZdarzen(); } } }