예제 #1
0
        public double MezzoInUscita(Sosta s, double prezzo_ora)
        {
            double prezzo      = 0;
            double tempo_sosta = 0;

            s.DataOraUscita = DateTime.Now;
            TimeSpan tm = s.DataOraUscita.Value - s.DataOraAccesso;

            tempo_sosta = tm.TotalSeconds;
            prezzo      = tempo_sosta * prezzo_ora;
            prezzo      = Math.Round(prezzo, 2);

            return(prezzo);
        }
예제 #2
0
        public void btnUscitaVeicolo_Click(object sender, RoutedEventArgs e)
        {
            if (dgVeicoliInSosta.Items.Count > 0)
            {
                Sosta fine_sosta = (Sosta)dgVeicoliInSosta.SelectedItem;        //Selezione dell'elemento corrispondente alla riga del DataGrid

                if (fine_sosta.TipoVeicolo == "MOTOCICLO")
                {
                    costo = park.MezzoInUscita(fine_sosta, prezzo_moto_ora);
                }
                else
                {
                    costo = park.MezzoInUscita(fine_sosta, prezzo_auto_ora);
                }

                grdManage.Visibility  = Visibility.Hidden;
                grdInfoOut.Visibility = Visibility.Visible;

                //Compilazione campi grid INFO_OUT
                tbTargaOut.Text   = fine_sosta.TargaVeicolo;
                tbOraIn.Text      = fine_sosta.DataOraAccesso.ToString();
                tbOraOut.Text     = fine_sosta.DataOraUscita.ToString();
                tbImportoOut.Text = costo.ToString();

                totIncasso           += costo;                              // L'importo calcolato nel metodo MezzoInUscita viene aggiunto alla variabile contatore incasso...
                lblTotIncasso.Content = "€ " + totIncasso;                  //...e relativo aggiornamento lbl

                dgVeicoliInSosta.Items.Refresh();                           //Aggiorno vista DataGrid

                park.VeicoliInSosta.Remove(fine_sosta);                     //L'oggetto viene rimosso dalla lista VeicoliInSosta...
                park.ArchivioVeicoli.Add(fine_sosta);                       //...e aggiunto alla lista ArchivioVeicoli

                CalcoloStatoParcheggioAuto();
                CalcoloStatoParcheggioMoto();

                //sezione  AGGIORNAMENTO CONTATORI (richiamo ai relativi metodi)
                lblContatoreMoto.Content = park.CalcoloPostiMotoOccupati(park.VeicoliInSosta).ToString();
                lblContatoreAuto.Content = park.CalcoloPostiAutoOccupati(park.VeicoliInSosta).ToString();
                lblContatoreTot.Content  = park.VeicoliInSosta.Count();                           //Aggiorno contatore tot
                VisualizzaTempiMediSosta();

                //sezione SALVATAGGI
                SalvaArchivioPark(park.ArchivioVeicoli);  //Salvataggio archivio old su file .dat
                SalvaDatiParcheggio(park.VeicoliInSosta); //Salvataggio archivio now su file .dat
            }
            else
            {
                MessageBox.Show("NESSUN VEICOLO IN SOSTA!", "Impossibile eseguire il comando", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
예제 #3
0
        public void MezzoInArrivo(Veicolo ve)
        {
            Sosta s = new Sosta(ve);

            VeicoliInSosta.Add(s);
        }