public List <UbicacionVehiculo> ListaUbicacionVehiculosDisponibles()
        {
            EmpresaController  controladorEmpresa  = new EmpresaController();
            VehiculoController controladorVehiculo = new VehiculoController();

            List <dal.Empresa> empresas = controladorEmpresa.ListarEmpresas();

            List <UbicacionVehiculo> listado = new List <UbicacionVehiculo>();

            foreach (Empresa _emp in empresas)
            {
                List <Vehiculo> vehiculos = controladorVehiculo.ListarVehiculosDisponibles(_emp.ID);

                foreach (Vehiculo _veh in vehiculos)
                {
                    UbicacionVehiculo _ubicacion = this.UltimaUbicacion(_emp.ID, _veh.ID);
                    if (_ubicacion != null)
                    {
                        listado.Add(_ubicacion);
                    }
                }
            }

            return(listado);
        }
        public List <UbicacionVehiculo> ListaUbicacionVehiculosEmpresaTipoPrecioDisponibles(int idEmpresa, int idTipoVehiculo, int precioMin, int precioMax)
        {
            VehiculoController            controladorVehiculo            = new VehiculoController();
            TipoVehiculoEmpresaController controladorTipoVehiculoEmpresa = new TipoVehiculoEmpresaController();

            List <UbicacionVehiculo> listado = new List <UbicacionVehiculo>();

            var tarifa = controladorTipoVehiculoEmpresa.ObtenerTarifaFijaTipoVehiculo(idEmpresa, idTipoVehiculo);

            if ((precioMin <= tarifa) && (tarifa <= precioMax))
            {
                List <Vehiculo> vehiculos = controladorVehiculo.ListarVehiculosDisponiblesPorTipo(idEmpresa, idTipoVehiculo);

                foreach (Vehiculo _veh in vehiculos)
                {
                    if (_veh.IdTipoVehiculo == idTipoVehiculo)
                    {
                        UbicacionVehiculo _ubicacion = this.UltimaUbicacion(idEmpresa, _veh.ID);
                        if (_ubicacion != null)
                        {
                            listado.Add(_ubicacion);
                        }
                    }
                }
            }

            return(listado);
        }
        public IActionResult Post([FromBody] UbicacionVehiculo ubicacion)
        {
            try
            {
                TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Montevideo Standard Time");
                DateTime     cstTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, cstZone);
                ubicacion.Fecha = cstTime;

                _ubicacionService.Create(ubicacion);
                return(Ok(new { result = true, message = "Ubicacion guardada correctamente" }));
            }
            catch (Exception)
            {
                return(Ok(new { result = false, message = "Los datos enviados no tienen el formato esperado." }));
            }
        }
        public List <UbicacionVehiculo> ListaUbicacionVehiculosEmpresa(int idEmpresa)
        {
            VehiculoController controladorVehiculo = new VehiculoController();

            List <UbicacionVehiculo> listado = new List <UbicacionVehiculo>();

            List <Vehiculo> vehiculos = controladorVehiculo.ListarVehiculos(idEmpresa);

            foreach (Vehiculo _veh in vehiculos)
            {
                UbicacionVehiculo _ubicacion = this.UltimaUbicacion(idEmpresa, _veh.ID);
                if (_ubicacion != null)
                {
                    listado.Add(_ubicacion);
                }
            }

            return(listado);
        }
Exemplo n.º 5
0
        public bool EstaEnLaZona(ZonaVehiculo zona, UbicacionVehiculo ubicacion)
        {
            double x = ubicacion.Coordenadas.Lat;
            double y = ubicacion.Coordenadas.Lng;

            var inside = false;

            for (int i = 0, j = zona.Puntos.Count() - 1; i < zona.Puntos.Count(); j = i++)
            {
                double xi = zona.Puntos.ElementAt(i).Lat, yi = zona.Puntos.ElementAt(i).Lng;
                double xj = zona.Puntos.ElementAt(j).Lat, yj = zona.Puntos.ElementAt(j).Lng;

                var intersect = ((yi > y) != (yj > y)) &&
                                (x < (xj - xi) * (y - yi) / (yj - yi) + xi);
                if (intersect)
                {
                    inside = !inside;
                }
            }

            return(inside);
        }
 public UbicacionVehiculo Create(UbicacionVehiculo ubicacion)
 {
     _ubicaciones.InsertOne(ubicacion);
     return(ubicacion);
 }