示例#1
0
        public override decimal ObliczKoszt(double sec, MiejsceParkingowe mp, Osoba o)
        {
            Decimal baseCost = 1;
            int     hour     = (int)Math.Ceiling(((sec - 180) / 3600));

            if (hour < 1)
            {
                hour = 1;
            }
            hour--;
            baseCost = baseCost + (hour * 1.5m);

            if (mp.DlaNiepelnosprawnych)
            {
                baseCost = baseCost * 0.2m;
            }

            if (mp.RodzajMiejsca == RodzajMiejsca.Duze)
            {
                baseCost = Decimal.Multiply(baseCost, 1.2m);
            }

            if (mp.RodzajMiejsca == RodzajMiejsca.Male)
            {
                baseCost = Decimal.Multiply(baseCost, 0.7m);
            }

            return(baseCost);
        }
示例#2
0
        private void Zwolnij_Click(object sender, RoutedEventArgs e)
        {
            MiejsceParkingowe mp = (MiejsceParkingowe)MiejsceParkingoweLB.SelectedItem;

            if (mp == null)
            {
                MessageBox.Show("Nie wybrano miejsca", "", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else if (!mp.Zajete)
            {
                MessageBox.Show("Miejsce jest wolne", "", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else
            {
                try
                {
                    Pojazd pojazd     = mp.ObecnyPojazd;
                    var    wlasciciel = osobaRepo.List.First(x => x.Pojazdy.Contains(pojazd));
                    var    czas       = mp.OpuscMiejsce();
                    var    doZaplaty  = wlasciciel.Cennik.ObliczKoszt(czas, mp, wlasciciel);
                    this.MiejsceParkingoweLB.ItemsSource = parking.ListRepo;
                    HistoriaGrid.ItemsSource             = null;
                    HistoriaGrid.ItemsSource             = mp.Historia.ZapisHistorii;
                    MessageBox.Show($"Do zapłaty: {doZaplaty} PLN", "", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
示例#3
0
        private void Zajmij_Click(object sender, RoutedEventArgs e)
        {
            MiejsceParkingowe mp = (MiejsceParkingowe)MiejsceParkingoweLB.SelectedItem;

            if (this.pojazd == null)
            {
                MessageBox.Show("Nie wybrano pojazdu", "", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else if (mp == null)
            {
                MessageBox.Show("Nie wybrano miejsca", "", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else
            {
                try
                {
                    mp.ZajmijMiejsce(pojazd, osobaRepo.List.First(x => x.Pojazdy.Contains(pojazd)));
                    this.MiejsceParkingoweLB.ItemsSource = parking.ListRepo;
                    MessageBox.Show("Sukces", "", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
        private void PopulateDB()
        {
            MiejsceParkingowe mp;

            for (int i = 0; i < 12; i++)
            {
                mp = new MiejsceParkingowe(RodzajMiejsca.Zwykle, false);
                parking.Repo.Add(mp.Id, mp);
            }
            mp = new MiejsceParkingowe(RodzajMiejsca.Zwykle, true);
            parking.Repo.Add(mp.Id, mp);
            mp = new MiejsceParkingowe(RodzajMiejsca.Male, false);
            parking.Repo.Add(mp.Id, mp);
            mp = new MiejsceParkingowe(RodzajMiejsca.Duze, false);
            parking.Repo.Add(mp.Id, mp);

            Osoba  osoba;
            Pojazd testPojazd;

            osoba      = new Osoba("Jan", "Kowalski", "45121478644", "*****@*****.**", "123123123");
            testPojazd = new Samochod("12341", "Ford", "Czarny");
            osoba.Pojazdy.Add(testPojazd);
            testPojazd = new Jednoslad("12342", "Yamaha", "Czerwony");
            osoba.Pojazdy.Add(testPojazd);
            testPojazd = new DuzySamochod("12343", "Mack", "Czarny");
            osoba.Pojazdy.Add(testPojazd);
            osobaRepo.Repo.Add(osoba.Id, osoba);

            osoba        = new Osoba("Anna", "Nowak", "64032377989", "*****@*****.**", "123123124");
            osoba.Cennik = new AbonamentCennik();
            testPojazd   = new Samochod("12345", "Ford", "Czarny");
            osoba.Pojazdy.Add(testPojazd);
            testPojazd = new Jednoslad("12346", "Yamaha", "Czerwony");
            osoba.Pojazdy.Add(testPojazd);
            testPojazd = new DuzySamochod("12347", "Mack", "Czarny");
            osoba.Pojazdy.Add(testPojazd);
            osobaRepo.Repo.Add(osoba.Id, osoba);

            osoba      = new Osoba("Jarosław", "Gęsiowski", "93092197758", "*****@*****.**", "123123125", true);
            testPojazd = new Samochod("12345", "Ford", "Czarny");
            osoba.Pojazdy.Add(testPojazd);
            testPojazd = new Jednoslad("12346", "Yamaha", "Czerwony");
            osoba.Pojazdy.Add(testPojazd);
            testPojazd = new DuzySamochod("12347", "Mack", "Czarny");
            osoba.Pojazdy.Add(testPojazd);
            osobaRepo.Repo.Add(osoba.Id, osoba);
        }
示例#5
0
 public override decimal ObliczKoszt(double sec, MiejsceParkingowe mp, Osoba o)
 {
     return(0);
 }
示例#6
0
 public override decimal ObliczKoszt(DateTime?dataRozpoczecia, DateTime?dataZakonczenia, MiejsceParkingowe mp, Osoba o)
 {
     return(0);
 }
示例#7
0
        public override decimal ObliczKoszt(DateTime?dataRozpoczecia, DateTime?dataZakonczenia, MiejsceParkingowe mp, Osoba o)
        {
            double sec = (dataZakonczenia.Value - dataRozpoczecia.Value).TotalSeconds;

            return(ObliczKoszt(sec, mp, o));
        }
示例#8
0
 public virtual decimal ObliczKoszt(double sec, MiejsceParkingowe mp, Osoba o)
 {
     return(0);
 }
示例#9
0
        private void MiejsceParkingoweLB_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            MiejsceParkingowe mp = (MiejsceParkingowe)MiejsceParkingoweLB.SelectedItem;

            HistoriaGrid.ItemsSource = mp.Historia.ZapisHistorii;
        }