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()); } }
// 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()); } }
// 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()); } }