Пример #1
0
        /// <summary>
        /// Coins werden eingelesen und auf min und max Betrag geprüft
        /// Sollte die Parkzeit in einer kostenfreien Zeit liegen wird die Parkdauer um diese Zeit verlängert
        /// </summary>
        /// <param name="coinsText"></param>
        private void Insert(string coinsText)
        {
            int coinsInserted = GetCoin(coinsText);

            if (coinsInserted == -1)
            {
                return;
            }

            FastClock.Instance.IsRunning = false;
            _credit += coinsInserted;

            if (_credit < 50)
            {
                return;
            }

            int validCredit    = Math.Min(Math.Max(0, _credit), CREDITLIMIT);
            int parkindDration = validCredit * 30 / 50;

            _startParkingTime = FastClock.Instance.Time;
            _endParkingTime   = _startParkingTime;

            if (_startParkingTime.Hour >= 18 || _startParkingTime.Hour < 8)
            {
                _endParkingTime = DateTime.Parse("08:00").AddMinutes(_endParkingTime.Minute);
                _endParkingTime = _endParkingTime.AddMinutes(parkindDration);
            }
            if (_endParkingTime.Hour >= 18)
            {
                _endParkingTime = DateTime.Parse("08:00").AddHours(_endParkingTime.Hour - 18).AddMinutes(parkindDration);
            }
            ParkingTimeSet?.Invoke(this, _endParkingTime);
        }
Пример #2
0
        /// <summary>
        /// Ticket wird gedruckt und an Zentrale übertragen
        /// </summary>
        private void Print()
        {
            if (_credit == 0)
            {
                return;
            }

            int price = Math.Min(_credit, 150);

            TicketPrinted?.Invoke(this, new Booking(_address, _credit, _credit - price, _startParkingTime, _endParkingTime));
            FastClock.Instance.IsRunning = true;
            ParkingTimeSet?.Invoke(this, null);
            _credit = 0;
        }
Пример #3
0
 /// <summary>
 /// Aktion wird abgebroche
 /// </summary>
 private void Cancel()
 {
     _credit = 0;
     ParkingTimeSet?.Invoke(this, null);
     FastClock.Instance.IsRunning = true;
 }