コード例 #1
0
        public IHttpActionResult actualizarGeocerca([FromBody] Geocerca geocerca)
        {
            try
            {
                if (geocerca == null)
                {
                    return(BadRequest());
                }
                var msgCodes = new List <string>();
                var deviceId = GetDeviceId(Request);
                if (deviceId == null)
                {
                    return(Unauthorized());
                }

                DateTime horaentrada = DateTime.ParseExact(geocerca.horaentrada.ToString(), "yyyy-MM-dd-HH.mm.ss.fff", System.Globalization.CultureInfo.InvariantCulture);
                DateTime horasalida  = DateTime.ParseExact(geocerca.horariosalida.ToString(), "yyyy-MM-dd-HH.mm.ss.fff", System.Globalization.CultureInfo.InvariantCulture);

                EmpleadoDAO     empleado    = new EmpleadoDAO();     // emple //fecha
                DispositivoDAO  dispositivo = new DispositivoDAO();
                PuertaAccesoDAO puertas     = new PuertaAccesoDAO(); // puerta

                var device   = dispositivo.FindByImei(deviceId);
                var employee = empleado.FindEmpleadoByDevice(device);

                List <int> empresas = new List <int>();
                empresas.Add(employee.Empresa.Id);
                var          lineas = new int[] { };
                PuertaAcceso puerta = puertas.GetList(empresas, lineas).Where(x => x.Id.ToString().Equals(geocerca.idpuerta)).First();
                if (puerta != null)
                {
                    EventoAcceso entrada = new EventoAcceso();
                    entrada.Empleado = employee;
                    entrada.Alta     = DateTime.UtcNow;
                    entrada.Entrada  = true;

                    entrada.Fecha  = horaentrada.ToUniversalTime();
                    entrada.Puerta = puerta;

                    EventoAccesoDAO eventos = new EventoAccesoDAO();
                    eventos.Save(entrada);

                    EventoAcceso salida = new EventoAcceso();
                    salida.Empleado = employee;
                    salida.Alta     = DateTime.UtcNow;
                    salida.Entrada  = false;
                    salida.Fecha    = horasalida.ToUniversalTime();
                    salida.Puerta   = puerta;

                    eventos.Save(salida);
                }
                return(Ok(msgCodes.ToArray()));
            }
            catch (Exception error)
            {
                LogicTracker.App.Web.Api.Providers.LogWritter.writeLog(error);
                return(BadRequest());
            }
        }
コード例 #2
0
        // GET: api/Routes/1234567890A
        public IHttpActionResult Get(int id)
        {
            try
            {
                var deviceId = GetDeviceId(Request);
                if (deviceId == null)
                {
                    return(BadRequest());
                }

                var items = new List <Geocerca>();


                PuertaAccesoDAO         puertas     = new PuertaAccesoDAO(); // puerta
                ReferenciaGeograficaDAO referencias = new ReferenciaGeograficaDAO();
                EmpleadoDAO             empleado    = new EmpleadoDAO();     // emple //fecha
                DispositivoDAO          dispositivo = new DispositivoDAO();

                var device   = dispositivo.FindByImei(deviceId);
                var employee = empleado.FindEmpleadoByDevice(device);

                List <int> empresas = new List <int>();
                empresas.Add(employee.Empresa.Id);
                var lineas = new int[] { };

                List <PuertaAcceso> lista = puertas.GetList(empresas, lineas);
                foreach (var item in lista)
                {
                    if (item.ReferenciaGeografica != null &&
                        !items.Exists(x => x.id.Equals(item.Id)))
                    {
                        if (item.ReferenciaGeografica.Id > id)
                        {
                            string radio = "50";
                            if (item.ReferenciaGeografica.Poligono != null)
                            {
                                radio = item.ReferenciaGeografica.Poligono.Radio.ToString();
                            }
                            string calle  = "";
                            string altura = "";
                            if (item.ReferenciaGeografica.Direccion != null)
                            {
                                calle  = item.ReferenciaGeografica.Direccion.Calle;
                                altura = item.ReferenciaGeografica.Direccion.Altura.ToString();
                            }
                            items.Add(new Geocerca()
                            {
                                id        = Convert.ToString(item.ReferenciaGeografica.Id),
                                latitude  = item.ReferenciaGeografica.Latitude.ToString(),
                                nombre    = item.Descripcion,
                                radio     = radio,
                                longitude = item.ReferenciaGeografica.Longitude.ToString(),
                                calle     = calle,
                                altura    = altura,
                                idpuerta  = item.Id.ToString()
                            });
                        }
                    }
                }
                return(Ok(items.ToArray().OrderBy(item => item.id).ToArray()));
            }
            catch (Exception error)
            {
                LogicTracker.App.Web.Api.Providers.LogWritter.writeLog(error);
                return(BadRequest());
            }
        }
コード例 #3
0
ファイル: RoutesController.cs プロジェクト: jesumarquez/lt
        // GET: api/Routes/1234567890A
        public IHttpActionResult Get(int id)
        {
            try
            {
                var            deviceId    = GetDeviceId(Request);
                EmpleadoDAO    empleado    = new EmpleadoDAO();// emple //fecha
                DispositivoDAO dispositivo = new DispositivoDAO();
                var            device      = dispositivo.FindByImei(deviceId);
                var            employee    = empleado.FindEmpleadoByDevice(device);

                var trip = RouteService.GetDistributionRouteById(id);

                if (trip == null)
                {
                    return(NotFound());
                }

                var route = new Route
                {
                    Code   = trip.Codigo,
                    Id     = trip.Id,
                    Status = trip.Estado
                };

                var jobs = new List <Job>();
                foreach (var detail in trip.Detalles)
                {
                    var job = new Job();
                    job.Id        = detail.Id;
                    job.StartDate = detail.Programado.ToString("yyyy-MM-ddTHH:mm:ss");
                    job.EndDate   = detail.ProgramadoHasta.ToString("yyyy-MM-ddTHH:mm:ss");
                    job.State     = detail.Estado == 3 ? 0 : detail.Estado;
                    if (detail.PuntoEntrega != null && detail.PuntoEntrega.Descripcion != null)
                    {
                        job.Code       = detail.PuntoEntrega.Codigo;
                        job.Name       = detail.PuntoEntrega.Descripcion;
                        job.clienttype = detail.PuntoEntrega.Cliente.Descripcion;
                    }
                    else
                    {
                        if (detail.Cliente != null)
                        {
                            job.ClientName = detail.Cliente.Descripcion;
                            job.Code       = detail.Cliente.Codigo;
                        }
                    }
                    if (detail.ReferenciaGeografica != null &&
                        detail.ReferenciaGeografica.Direccion != null &&
                        detail.ReferenciaGeografica.Direccion.Descripcion != null &&
                        !String.IsNullOrEmpty(detail.ReferenciaGeografica.Direccion.Calle))
                    {
                        if (detail.ReferenciaGeografica.Direccion.Altura > 0)
                        {
                            job.direccionreal = detail.ReferenciaGeografica.Direccion.Calle.ToString() + " "
                                                + detail.ReferenciaGeografica.Direccion.Altura + " , " + detail.ReferenciaGeografica.Direccion.Partido;
                        }
                        else
                        {
                            job.direccionreal = detail.ReferenciaGeografica.Direccion.Descripcion;
                        }
                    }
                    job.Description = detail.Descripcion;

                    job.Order    = detail.Orden;
                    job.Location = new Location();

                    job.Volumen  = (float)detail.Volumen;
                    job.Quantity = detail.Bultos;
                    job.Value    = (float)detail.Valor;
                    job.Weight   = (float)detail.Peso;

                    if (detail.PuntoEntrega != null)
                    {
                        job.Location.Latitude  = (float)detail.PuntoEntrega.ReferenciaGeografica.Latitude;
                        job.Location.Longitude = (float)detail.PuntoEntrega.ReferenciaGeografica.Longitude;
                    }
                    else
                    {
                        job.Location.Latitude  = (float)detail.Linea.ReferenciaGeografica.Latitude;
                        job.Location.Longitude = (float)detail.Linea.ReferenciaGeografica.Longitude;
                    }

                    if (detail.PuntoEntrega != null)
                    {
                        jobs.Add(job);
                    }
                }
                route.Jobs = jobs.ToArray();

                if (trip.Recepcion == null)
                {
                    ViajeDistribucionDAO vd = new ViajeDistribucionDAO();
                    trip.Recepcion = DateTime.UtcNow;
                    if (trip.Empleado == null)
                    {
                        trip.Empleado = employee;
                    }
                    vd.SaveOrUpdate(trip);
                }

                return(Ok(route));
            }
            catch (Exception error)
            {
                LogicTracker.App.Web.Api.Providers.LogWritter.writeLog(error);
                return(BadRequest());
            }
        }