예제 #1
0
        public void CarOut(string licensePlate, int camId)
        {
            Gate gate = Gates.FirstOrDefault(gt => gt.Id == camId);

            if (gate == null)
            {
                Form.Invoke((MethodInvoker) delegate { ConsoleLog.Add("Kameros klaida"); });
                return;
            }

            Vehicle vehicle = NotParkedVehicles.FirstOrDefault(veh => veh.LicensePlate == licensePlate);

            if (vehicle == null)
            {
                Form.Invoke((MethodInvoker) delegate { ConsoleLog.Add("Mašina sistemoje nerasta!!! " + licensePlate); });
                gate.OpenVehicle(licensePlate, false);
                return;
            }

            if (!vehicle.Paid)
            {
                if (ResidentsList.FirstOrDefault(s => s.LicensePlate == vehicle.LicensePlate) == null)
                {
                    Form.Invoke((MethodInvoker) delegate { ConsoleLog.Add("Važiuoja nesusimokėjus " + vehicle); });
                    return;
                }

                vehicle.Resident = true;
                vehicle.Paid     = true;
            }

            gate.OpenVehicle(licensePlate, false);
        }
예제 #2
0
        public void CarOutGate(Gate gate)
        {
            var vehicle = NotParkedVehicles.FirstOrDefault(v => v.LicensePlate == gate.OpenGatesFor);

            if (vehicle == null)
            {
                return;
            }
            NotParkedVehicles.Remove(vehicle);
            MockedVehiclesInOut.First(veh => veh == vehicle && veh.InParkingLot).OnExit();
        }
예제 #3
0
        public Vehicle Parked(string license)
        {
            Vehicle vehicle;

            lock (NotParkedVehicles)
            {
                vehicle = NotParkedVehicles.FirstOrDefault(v => v.LicensePlate == license);
                if (vehicle != null)
                {
                    NotParkedVehicles.Remove(vehicle);
                }
            }
            return(vehicle);
        }
예제 #4
0
        public void Pay(string licensePlat)
        {
            Vehicle vehicle = NotParkedVehicles.FirstOrDefault(v => v.LicensePlate == licensePlat);

            if (vehicle != null)
            {
                vehicle.OnPay();
            }
            else
            {
                foreach (var parkingLotParkingSpace in ParkingLot.ParkingSpaces)
                {
                    if (parkingLotParkingSpace.Vehicle != null && parkingLotParkingSpace.Vehicle.LicensePlate == licensePlat)
                    {
                        parkingLotParkingSpace.Vehicle.OnPay();
                        return;
                    }
                }
            }
        }