private void btnAdauga_Click(object sender, EventArgs e) { RutaAeriana ruta = dateRutaUsrControl1.GetRutaAeriana(); if (ruta == null) { MessageBox.Show("Selectați două aeroporturi valide", "Rută Invalidă", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { if (companie.AdaugaRuta(ruta) == false) { MessageBox.Show("Această rută există deja", "Eroare la adăugarea rutei", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void btnModifica_Click(object sender, EventArgs e) { if (rbModifAerop.Checked == true) { var rutaModificata = dateRutaUsrControl1.GetRutaAeriana(); if (companie.Rute.ContainsKey(rutaModificata)) { MessageBox.Show("Această rută modificată este deja deservită de către companie", "Eroare modificare rută", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } RutaAeriana rutaVeche; if ((rutaVeche = cbRute.SelectedItem as RutaAeriana) != null && companie.Rute[rutaVeche].Count == 0) { //ruta veche o avem deja SortedDictionary <DateTime, SortedDictionary <Zbor, Hashtable> > zboruriVechi = null; try { zboruriVechi = companie.Rute[rutaVeche]; } catch (KeyNotFoundException ex) { File.WriteAllText("debug.txt", ex.Message); } //stergem ruta veche din dictionar companie.Rute.Remove(rutaVeche); //introducem ruta modificata companie.AdaugaRuta(rutaModificata, zboruriVechi); //reactulizam data sources cbRute.DataSource = null; cbRute.Items.Clear(); cbRute.DataSource = companie.Rute.Keys.ToList(); } else { MessageBox.Show("Această rută nu poate fi modificată,deoarece pentru dinsa deja au fost " + "înregistrate zboruri,pentru care la rîndul lor au fost înregistrate rezervări", "Eroare modificare rută", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else if (rbModifZboruri.Checked == true) { var zborModificat = adaugaZboruriUsrControl1.GetZbor(); if (zborModificat != null) { cbRute.Enabled = false; cbDateZbor.Enabled = false; cbZboruri.Enabled = false; rbModifAerop.Enabled = false; btnCancel.Enabled = false; RutaAeriana rutaAeriana = cbRute.SelectedItem as RutaAeriana; try { if (companie.Rute[rutaAeriana] [CompanieAeriana.ExtractDate(zborModificat.TimpDecolare)]. ContainsKey(zborModificat)) { MessageBox.Show("Aceast zbor deja există în cadrul acestei rute", "Eroare modificare zbor", MessageBoxButtons.OK, MessageBoxIcon.Error); btnModifica.Enabled = false; cbRute.Enabled = true; cbDateZbor.Enabled = true; cbZboruri.Enabled = true; rbModifAerop.Enabled = true; btnCancel.Enabled = true; return; } } catch (KeyNotFoundException) { //daca data nu a fost gasita atunci sigur asa ruta nu exista in dictionar } //datele vechi var zborVechi = cbZboruri.SelectedItem as Zbor; var rezervVechi = companie.Rute[rutaAeriana] [CompanieAeriana.ExtractDate(zborVechi.TimpDecolare)][zborVechi]; companie.Rute[rutaAeriana] [CompanieAeriana.ExtractDate(zborVechi.TimpDecolare)].Remove(zborVechi); //modificare date vechi zborVechi.TimpAterizare = zborModificat.TimpAterizare; zborVechi.TimpDecolare = zborModificat.TimpDecolare; //reinserare date noi companie.AdaugaZbor(rutaAeriana, zborVechi, rezervVechi); //reactualizare data sources try { cbDateZbor.DataSource = null; cbDateZbor.Items.Clear(); cbZboruri.DataSource = null; cbZboruri.Items.Clear(); cbDateZbor.DataSource = companie.Rute[rutaAeriana].Keys.ToList(); cbZboruri.DataSource = companie.Rute[rutaAeriana] [(DateTime)cbDateZbor.SelectedItem].Keys.ToList(); } catch { } btnModifica.Enabled = false; adaugaZboruriUsrControl1.dateAterizare.Enabled = false; adaugaZboruriUsrControl1.dateDecolare.Enabled = false; cbRute.Enabled = true; cbDateZbor.Enabled = true; cbZboruri.Enabled = true; rbModifAerop.Enabled = true; btnCancel.Enabled = true; } } }