Пример #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
        private bool IsEnabled(object thing)
        {
            var payload = new InstrumentationPayload {
                FeatureName = Name,
                Operation   = "enabled?",
            };

            if (thing != null)
            {
                payload.Thing = thing;
            }
            using (Instrumenter.InstrumentFeature(payload))
            {
                var  values   = GateValues;
                var  openGate = Gates.FirstOrDefault(gate => InstrumentGate(gate, "open?", thing, x => x.IsOpen(thing, values[x.Key], Name)));
                bool result;
                if (openGate != null)
                {
                    payload.GateName = openGate.Name;
                    result           = true;
                }
                else
                {
                    result = false;
                }
                payload.Result = result;
                return(result);
            }
        }
Пример #3
0
        public TargetObj Get <T>(string id) where T : TargetObj
        {
            Type type = typeof(T);

            switch (type.Name)
            {
            case nameof(Bridge):
                return(Bridges.FirstOrDefault(_ => _.ID == id));

            case nameof(GateInfo):
                return(Gates.FirstOrDefault(_ => _.ID == id));

            case nameof(FenceRegionsInfo):
                return(Regions.FirstOrDefault(_ => _.ID == id));
            }
            return(null);
        }
Пример #4
0
        public GateInfo[] GetBridgeFromRegion(string id)
        {
            List <GateInfo> list    = new List <GateInfo>();
            var             gateIds = Bridges?.Where(_ => _.Links.Any(l => l == id)).Select(_ => _.ID);

            if (Gates != null && gateIds.Count() > 0)
            {
                foreach (var gate in gateIds)
                {
                    var reg = Gates.FirstOrDefault(_ => _.ID == gate);
                    if (reg != null)
                    {
                        list.Add(reg);
                    }
                }
            }
            return(list.ToArray());
        }
Пример #5
0
        public void CarIn(string licensePlate, int camId)
        {
            Gate gate = Gates.FirstOrDefault(gt => gt.Id == camId);

            if (gate == null)
            {
                Form.Invoke((MethodInvoker) delegate { ConsoleLog.Add("Kameros klaida"); });
                return;
            }
            if (!ParkingLot.IsFree())
            {
                Form.Invoke((MethodInvoker) delegate { ConsoleLog.Add("Aikštelė pilna!"); });
                return;
            }
            ;

            if (CheckBoxInParkingLot(licensePlate))
            {
                Form.Invoke((MethodInvoker) delegate { ConsoleLog.Add("Mašina jau aikštelėje " + licensePlate); });
                return;
            }

            gate.OpenVehicle(licensePlate, true);
        }