コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        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;
                }
            }
        }