Ejemplo n.º 1
0
        public async Task <PersistenceResult> RegisterAccessAsync(VehicleAccess access)
        {
            if (!IsInizialized)
            {
                return new PersistenceResult()
                       {
                           State = ResultStates.Error, Message = "Not initialized!"
                       }
            }
            ;

            try
            {
                await DocumentDBRepository <VehicleAccess> .CreateItemAsync(access);
            }
            catch (Exception ex)
            {
                return(new PersistenceResult()
                {
                    State = ResultStates.Error, Message = ex.Message
                });
            }

            return(new PersistenceResult()
            {
                State = ResultStates.Completed
            });
        }
Ejemplo n.º 2
0
        public static IActionResult RegisterAccessAsync(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "registeraccess")] HttpRequestMessage req,
            [CosmosDB("ParkingLedger", "VehicleAccesses", ConnectionStringSetting = "CosmosDBEndpoint", CreateIfNotExists = true)] DocumentClient client,
            ILogger log)
        {
            // Get request body
            var data = req.Content.ReadAsStringAsync().Result;

            if (string.IsNullOrEmpty(data))
            {
                return(new BadRequestObjectResult("no payload"));
            }

            VehicleAccess va = JsonConvert.DeserializeObject <VehicleAccess>(data);

            if (va != null)
            {
                client.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri("ParkingLedger", "VehicleAccesses"), va, new RequestOptions {
                    PostTriggerInclude = new List <string> {
                        "UpdateParkingStatus"
                    }
                });
                return(new OkResult());
            }

            return(new BadRequestResult());
        }
Ejemplo n.º 3
0
        private List <VehicleAccessDocument> CreateAccessesList()
        {
            List <VehicleAccessDocument> list = new List <VehicleAccessDocument>();

            for (int month = 1; month <= 12; month++)
            {
                for (int day = 1; day <= 28; day++)
                {
                    Random parkingHours  = new Random(DateTime.Now.TimeOfDay.Seconds);
                    Random numOfVehicles = new Random(DateTime.Now.TimeOfDay.Seconds);
                    Random parkId        = new Random(DateTime.Now.TimeOfDay.Seconds);

                    DateTime parkingDay = new DateTime(2018, month, day, 0, 0, 0);

                    // less parking on weekends
                    int numberOfVehicles = numOfVehicles.Next(30, 50) + numOfVehicles.Next(34, 70);
                    if (parkingDay.DayOfWeek == DayOfWeek.Sunday || parkingDay.DayOfWeek == DayOfWeek.Saturday)
                    {
                        numberOfVehicles = numOfVehicles.Next(5, 15);
                    }

                    for (; numberOfVehicles > 0; numberOfVehicles--)
                    {
                        var           inDate    = parkingDay.AddHours(parkingHours.Next(6, 10));
                        string        vehicleId = $"BD{day}{day}AS{numberOfVehicles}";
                        int           pID       = parkId.Next(1, 4);
                        VehicleAccess @in       = new VehicleAccess
                        {
                            Direction   = AccessDirections.In,
                            ParkingID   = pID,
                            SpaceID     = day,
                            VehicleID   = vehicleId,
                            TimeStamp   = inDate,
                            VehicleType = VehicleTypes.Car
                        };
                        VehicleAccess @out = new VehicleAccess
                        {
                            Direction   = AccessDirections.Out,
                            ParkingID   = pID,
                            SpaceID     = day,
                            VehicleID   = vehicleId,
                            TimeStamp   = inDate.AddHours(parkingHours.Next(1, 8)), //max 8 hours of parking
                            VehicleType = VehicleTypes.Car
                        };
                        list.Add(new VehicleAccessDocument()
                        {
                            Access = @in, id = Guid.NewGuid().ToString()
                        });
                        list.Add(new VehicleAccessDocument()
                        {
                            Access = @out, id = Guid.NewGuid().ToString()
                        });
                    }
                }
            }

            Console.WriteLine($"Created a list with {list.Count} vehicle accesses");

            return(list);
        }
Ejemplo n.º 4
0
        public async Task<PersistenceResult> RegisterAccessAsync(VehicleAccess access)
        {
            PersistenceResult result;

            try
            {
                result = await AccessLedger.RegisterAccessAsync(access);
            }
            catch (Exception ex)
            {
                result = new PersistenceResult() { State = ResultStates.Error, Message = ex.Message };
            }

            return result;
        }
Ejemplo n.º 5
0
        public async Task<VehicleAccess> GetLastVehicleAccess(int parkingID, string vehicleId)
        {
            VehicleAccess access = null;
            try
            {
                //get last access of a specific vehicle from the ledger
                access = await AccessLedger.GetLastVehicleAccessAsync(parkingID, vehicleId);

                //if there isn't an access in the ledger, return null
                return access;
            }
            catch (Exception ex)
            {

            }

            return access;
        }
Ejemplo n.º 6
0
        public ChooseCarViewModel()
        {
            vehicleAccess = new VehicleAccess();


            mainViewModel = MainViewModel.GetMainViewModel();
            mainViewModel.ChooseCarViewModel = this;


            selectedVehicleBrand        = new Vehicle();
            selectedVehicleModification = new VehicleModification();
            selectedVehicleEngine       = new VehicleEngine();

            vehicleBrands        = new ObservableCollection <Vehicle>();
            vehicleModifications = new ObservableCollection <VehicleModification>();
            vehicleEngines       = new ObservableCollection <VehicleEngine>();

            FillVehicleBrands();
        }
Ejemplo n.º 7
0
        public async Task <VehicleAccess> GetLastVehicleAccessAsync(int parkingId, string vehicleId)
        {
            using (HttpClient client = new HttpClient())
            {
                try
                {
                    client.BaseAddress = Endpoint;
                    var result = await client.GetAsync($"getlastvehicleaccess/{parkingId}/{vehicleId}");

                    result.EnsureSuccessStatusCode();
                    VehicleAccess access = JsonConvert.DeserializeObject <VehicleAccess>(await result.Content.ReadAsStringAsync());
                    return(access);
                }
                catch (Exception ex)
                {
                    return(null);
                }
            }
        }
Ejemplo n.º 8
0
        public NewCarViewModel()
        {
            vehicleAccess = new VehicleAccess();


            mainViewModel = MainViewModel.GetMainViewModel();
            mainViewModel.NewCarViewModel = this;


            selectedVehicleBrand        = new Vehicle();
            selectedVehicleModification = new VehicleModification();
            selectedVehicleEngine       = new VehicleEngine();

            vehicleBrands        = new ObservableCollection <Vehicle>();
            vehicleModifications = new ObservableCollection <VehicleModification>();
            vehicleEngines       = new ObservableCollection <VehicleEngine>();

            vehicleModificationModels        = new ObservableCollection <string>();
            vehicleModificationModelCodes    = new ObservableCollection <string>();
            vehicleModificationReleaseStarts = new ObservableCollection <string>();
            vehicleModificationReleaseEnds   = new ObservableCollection <string>();


            vehicleEngineVolumes       = new ObservableCollection <float>();
            vehicleEngineModifications = new ObservableCollection <string>();
            vehicleEnginePowers        = new ObservableCollection <short>();
            vehicleEngineModelCodes    = new ObservableCollection <string>();
            vehicleEngineReleaseStarts = new ObservableCollection <string>();
            vehicleEngineReleaseEnds   = new ObservableCollection <string>();


            //VehicleModification vm1 = new VehicleModification("Sierra", "GBC", "1987", "1990");
            //VehicleModification vm2 = new VehicleModification("Sierra", "GBN", "1990", "1993");
            //vehicleModifications.Add(vm1);
            //vehicleModifications.Add(vm2);

            //VehicleModificationModels.Add(vm1.Model);
            //VehicleModificationModels.Add(vm2.Model);

            FillVehicleBrands();
        }
Ejemplo n.º 9
0
        public async Task <PersistenceResult> RegisterAccessAsync(VehicleAccess access)
        {
            if (!IsInizialized)
            {
                return new PersistenceResult()
                       {
                           State = ResultStates.Error, Message = "Not initialized!"
                       }
            }
            ;


            using (HttpClient client = new HttpClient())
            {
                try
                {
                    client.BaseAddress = Endpoint;
                    var jsonObject = JsonConvert.SerializeObject(access);
                    var content    = new StringContent(jsonObject, Encoding.UTF8, "application/json");
                    var result     = await client.PostAsync("registeraccess", content);

                    result.EnsureSuccessStatusCode();
                    return(new PersistenceResult()
                    {
                        State = ResultStates.Completed
                    });
                }
                catch (Exception ex)
                {
                    return(new PersistenceResult()
                    {
                        State = ResultStates.Error
                    });
                }
            }
        }
Ejemplo n.º 10
0
        // for manual import
        private async Task RegisterVehicleAccess(string databaseName, string collectionName, VehicleAccess access)
        {
            try
            {
                var doc = await this.client.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(databaseName, collectionName), access);

                Console.WriteLine($"Added new access: {doc.Resource.Id}");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed to register a new vechicle access: " + ex.Message);
            }
        }
 public void addAccesoVehiculo(VehicleAccess v_acceso)
 {
     listaAccesosVehiculos.Add(v_acceso);
 }
        public void updateVirtualGateEvents(EventoGPS GPSDesde, EventoGPS GPSHacia)
        {
            Punto A = new Punto(float.Parse(GPSDesde.Latitud), float.Parse(GPSDesde.Longitud));
            Punto B = new Punto(float.Parse(GPSHacia.Latitud), float.Parse(GPSHacia.Longitud));

            foreach (KeyValuePair<string, Zone> pair in listaZonas)
            {
                foreach (KeyValuePair<string, Zone.GateDefinition> gate in pair.Value.listaPuertas)
                {
                    Punto C = new Punto(float.Parse(gate.Value.from.position.latitude), float.Parse(gate.Value.from.position.longitude));
                    Punto D = new Punto(float.Parse(gate.Value.to.position.latitude), float.Parse(gate.Value.to.position.longitude));

                    if (intersecta(A, B, C, D))
                    {
                        GateAccessType tipoAcceso;

                        tipoAcceso = gate.Value.type;

                        VehicleAccess nuevoAcceso = new VehicleAccess(GPSDesde.HHID, gate.Value.ID, GPSHacia.Hora, tipoAcceso);

                        mainApp.DataManager.addAccesoVehiculo(nuevoAcceso);
                        mainApp.ComunicationSystem.actualizeListViewAccesosVirtualGates = true;

                    }
                }
            }
        }