예제 #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
파일: CocheDAO.cs 프로젝트: jesumarquez/lt
        public Coche GetGenerico(Empresa empresa, Transportista transportista)
        {
            var generico = "(Generico)";

            if (transportista != null)
            {
                var descripcion = transportista.Descripcion.Length > 19
                                    ? transportista.Descripcion.Substring(0, 19)
                                    : transportista.Descripcion;
                generico = "(Generico - " + descripcion + ")";
            }

            var idEmpresa = empresa != null ? empresa.Id : -1;
            var coche     = FindByInterno(new[] { idEmpresa }, new[] { -1 }, generico);

            if (coche != null && coche.Dispositivo != null)
            {
                return(coche);
            }
            if (coche == null)
            {
                var modeloDAO    = new ModeloDAO();
                var tipoCocheDAO = new TipoCocheDAO();
                coche = new Coche
                {
                    Empresa            = empresa,
                    Linea              = null,
                    Transportista      = transportista,
                    Interno            = generico,
                    IdentificaChoferes = true,
                    AnioPatente        = 2000,
                    Modelo             = modeloDAO.GetList(new[] { idEmpresa }, new[] { -1 }, new[] { -1 }).First()
                };
                coche.Marca             = coche.Modelo.Marca;
                coche.ModeloDescripcion = coche.Modelo.Descripcion;
                coche.NroChasis         = generico;
                coche.NroMotor          = generico;
                coche.Patente           = generico;
                coche.Poliza            = generico.Length > 16 ? generico.Substring(0, 16) : generico;
                coche.TipoCoche         = tipoCocheDAO.FindByEmpresasAndLineas(new List <int> {
                    idEmpresa
                }, new List <int> {
                    -1
                }, null)
                                          .Cast <TipoCoche>().First();
            }
            if (coche.Dispositivo == null)
            {
                var dispositivoDAO = new DispositivoDAO();
                coche.Dispositivo = dispositivoDAO.GetGenericDevice(empresa, transportista);
            }

            coche.Estado = Coche.Estados.Activo;
            SaveOrUpdate(coche);
            return(coche);
        }
예제 #3
0
 private void QuitarDispositivo_Load(object sender, EventArgs e)
 {
     try
     {
         this.dataGridView1.DataSource = DispositivoDAO.LeerTodo();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
예제 #4
0
        // POST: api/Routes
        public IHttpActionResult Post(int id, [FromBody] String version)
        {
            try
            {
                var deviceId = GetDeviceId(Request);
                if (deviceId == null)
                {
                    return(BadRequest());
                }

                var mobileId = RouteService.GetMobileIdByImei(deviceId);
                DetalleDispositivoDAO       detalle       = new DetalleDispositivoDAO();
                TipoParametroDispositivoDAO tipo          = new TipoParametroDispositivoDAO();
                DispositivoDAO             dispositivodao = new DispositivoDAO();
                var                        dispositivo    = dispositivodao.FindByImei(deviceId);
                IList <DetalleDispositivo> lista          = dispositivo.DetallesDispositivo.ToList();
                DetalleDispositivo         setVersion     = null;
                foreach (var item in lista)
                {
                    if (item.TipoParametro.Nombre.Equals("Version_Software") &&
                        item.TipoParametro.TipoDato == "string")
                    {
                        // dispositivo.DetallesDispositivo.Remove(item);
                        //detalle.Delete(item);
                        setVersion       = item;
                        setVersion.Valor = version;
                        // dispositivodao.SaveOrUpdate(dispositivo);
                        break;
                    }
                }

                if (setVersion == null)
                {
                    setVersion = new DetalleDispositivo();
                    TipoParametroDispositivoDAO tp = new TipoParametroDispositivoDAO();
                    setVersion.Dispositivo   = dispositivo;
                    setVersion.TipoParametro = tp.FindByTipoDispositivo(dispositivo.TipoDispositivo.Id).Where(x => x.Nombre.Equals("Version_Software")).FirstOrDefault();

                    setVersion.Valor = version;
                    tp.SaveOrUpdate(setVersion.TipoParametro);
                    dispositivo.DetallesDispositivo.Add(setVersion);
                }
                detalle.SaveOrUpdate(setVersion);
                dispositivodao.SaveOrUpdate(dispositivo);
                return(Ok("ok"));
            }
            catch (Exception error)
            {
                LogicTracker.App.Web.Api.Providers.LogWritter.writeLog(error);
                return(BadRequest());
            }
        }
예제 #5
0
        private IMessage Translate(SitrackFrame frame)
        {
            var deviceId = 0;

            if (frame.HolderDomain != null)
            {
                deviceId = FindDeviceId(frame.HolderDomain);
            }

            if (deviceId != 0 && deviceId != -1)
            {
                var pos = new GPSPoint
                {
                    Lat    = (float)frame.Latitude,
                    Lon    = (float)frame.Longitude,
                    Date   = frame.ReportDate.ToUniversalTime(),
                    Speed  = new Speed(frame.Speed),
                    Course = new Course(frame.Course)
                };
                if (frame.EventDesc != null)
                {
                    var dispositivoDao = new DispositivoDAO();
                    var dispositivo    = dispositivoDao.FindById(deviceId);

                    var codeEvent = frame.EventId + 9000;

                    var msgTraduccionDao   = new MensajeTraducidoDAO();
                    var codeEventTraducido = msgTraduccionDao.GetCodigoFinal(dispositivo.Empresa.Id, codeEvent.ToString());
                    var evento             = new Event(Convert.ToInt16(codeEventTraducido), -1, deviceId, (ulong)frame.EventId, pos, pos.GetDate(), "", null, true);

                    return(evento);
                }

                var message = pos.ToPosition(deviceId, 0);

                return(message);
            }

            return(null);
        }
예제 #6
0
        public void SaveAndUpdateSubEntidades(EntidadPadre entidad)
        {
            var todos          = new[] { -1 };
            var subEntidadDao  = new SubEntidadDAO();
            var dispositivoDao = new DispositivoDAO();

            var subentidades = subEntidadDao.GetList(todos, todos, todos, new[] { entidad.Id }, todos, todos);

            foreach (var subentidad in subentidades)
            {
                subentidad.Empresa = entidad.Empresa;
                subentidad.Linea   = entidad.Linea;
                subEntidadDao.SaveOrUpdate(subentidad);
            }

            var dispositivo = entidad.Dispositivo;

            dispositivo.Empresa = entidad.Empresa;
            dispositivoDao.SaveOrUpdate(dispositivo);

            SaveOrUpdate(entidad);
        }
예제 #7
0
        private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            Dispositivos dispo = null;
            string       nombre;

            if (MessageBox.Show("Esta seguro que desea eliminar el producto?", "Elimanando", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                nombre = dataGridView1.CurrentRow.Cells["Nombre"].Value.ToString();

                for (int i = 0; i < fabricaAux.ListaDispositivos.Count; i++)
                {
                    if (fabricaAux.ListaDispositivos[i].Nombre == nombre)
                    {
                        dispo = fabricaAux.ListaDispositivos[i];
                        break;
                    }
                }

                try
                {
                    if (fabricaAux - dispo)
                    {
                        this.dataGridView1.DataSource = null;
                        this.dataGridView1.DataSource = DispositivoDAO.LeerTodo();
                        MessageBox.Show("Dispositivo eliminado con exito");
                    }
                    else
                    {
                        MessageBox.Show("No se ha podido eliminar");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
예제 #8
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());
            }
        }
        static void Main(string[] args)
        {
            //Cambio el titulo de la consola
            Console.Title = "Agustin-Fernandez-2C";

            //Creo la fabrica
            Fabrica fabrica = new Fabrica();

            fabrica.HarcodearProductos();
            //Harcodeo los dispositivos
            Dispositivos d1 = new Notebook("Notebook hp", 25, 500, Notebook.EModeloNotebook.HP);
            Notebook     d2 = new Notebook("Notebook MAC", 1, 242424, Notebook.EModeloNotebook.Mac);
            Dispositivos d3 = new Celular("Huawei mate 10", 64, 15000, Celular.EModeloCelulares.Huawei);
            Celular      d4 = new Celular("Samsung Note 10", 32, 40000, Celular.EModeloCelulares.Samsung);

            //Creo los hilos que simulan el harcodeo de mas dispositivos
            Thread hilo1 = new Thread(new ParameterizedThreadStart(Fabrica.AgregarCelularesAProduccion));
            Thread hilo2 = new Thread(new ParameterizedThreadStart(Fabrica.AgregarNotebooksAProduccion));

            try
            {
                if (DispositivoDAO.DeleteTodosLosDispositivos())
                {
                    Console.WriteLine("Se limpio la tabla");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //Tratamos de cargar los dispositivos
            try
            {
                //if ((fabrica - d1) && (fabrica - d2) && (fabrica - d3) && (fabrica - d4))
                //{
                //    Console.WriteLine("Primero me aseguro de borrar si es que quedaron guardados de alguna anterior ejecucion");
                //}

                if (fabrica + d1)
                {
                    Console.WriteLine("Se cargo con exito el dispositivo 1");
                }
                if (fabrica + d2)
                {
                    Console.WriteLine("Se cargo con exito el dispositivo 2");
                }
                if (fabrica + d3)
                {
                    Console.WriteLine("Se cargo con exito el dispositivo 3");
                }
                if (fabrica + d4)
                {
                    Console.WriteLine("Se cargo con exito el dispositivo 4");
                }
                //Cargo un dispositivo repetido
                Console.WriteLine("Ahora se trata de cargar un dispositivo repetido deberia tirar excepcion");
                if (fabrica + d1)
                {
                    Console.WriteLine("Se cargo con exito el dispositivo 1");
                }
            }
            catch (DispositivoRepetidoException e)
            {
                Console.WriteLine(e.Message);
            }

            Console.WriteLine("Presione una tecla para continuar");
            Console.ReadKey();
            Console.Clear();

            try
            {
                Console.WriteLine("Se trata de sacar un dispositivo de la lista con el operador -");
                if (fabrica - d1)
                {
                    Console.WriteLine("Dispositivo quitado con exito");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            Console.WriteLine("Presione una tecla para continuar");
            Console.ReadKey();
            Console.Clear();

            try
            {
                Console.WriteLine("Se muestran los productos harcodeados y se crea el archivo .xml");
                Console.WriteLine();
                Console.WriteLine(fabrica.ToString());

                Fabrica.Guardar(fabrica);
            }
            catch (ArchivosException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.InnerException.Message);
            }

            Console.WriteLine("Presione una tecla para continuar");
            Console.ReadKey();
            Console.Clear();

            try
            {
                Console.WriteLine("Se guarda el archivo en .txt");
                string     path = String.Concat(AppDomain.CurrentDomain.BaseDirectory, "Fabrica.txt");
                ArchivoTxt txt  = new ArchivoTxt();
                txt.Guardar(path, fabrica.ToString());
                Console.WriteLine("Datos guardados con exito");
            }
            catch (ArchivosException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.InnerException.Message);
            }

            Console.WriteLine("Presione una tecla para continuar");
            Console.ReadKey();
            Console.Clear();

            try
            {
                hilo1.Name = "Hilo uno";
                hilo2.Name = "Hilo dos";
                Console.WriteLine("Se hardcodean 6 dispositivos de diferentes hilos");
                hilo1.Start(fabrica);
                Thread.Sleep(5000);
                hilo2.Start(fabrica);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            Console.WriteLine("Presione una tecla para continuar");
            Console.ReadKey();
            Console.Clear();
        }
예제 #10
0
        // 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());
            }
        }
예제 #11
0
 //METODO CONSTRUTOR
 public DispositivoBO()
 {
     daoDispositivo = new DispositivoDAO();
     boDivisao      = new DivisaoBO();
     boControle     = new ControleBO();
 }
예제 #12
0
        public IHttpActionResult Get(int id)
        {
            try
            {
                var deviceId = GetDeviceId(Request);
                if (deviceId == null)
                {
                    return(BadRequest());
                }

                List <Rechazo> retorno = new List <Rechazo>();

                var device                = new DispositivoDAO().FindByImei(deviceId.ToString());
                var empleado              = new EmpleadoDAO().FindEmpleadoByDevice(device);
                TicketRechazoDAO dao      = new TicketRechazoDAO();
                var desde                 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
                var hasta                 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
                var activos               = dao.GetByEmpleadoAndFecha(empleado, desde, hasta).AsQueryable();
                List <TicketRechazo> list = activos.Where(x => !x.UltimoEstado.Equals(TicketRechazo.Estado.Resuelto) &&
                                                          x.Id > id).ToList();

                foreach (TicketRechazo item in list)
                {
                    TicketRechazo.Estado[] estados      = TicketRechazo.Next(item.UltimoEstado);
                    List <Estado>          estadosmodel = new List <Estado>();

                    foreach (var itemEstado in item.Detalle)
                    {
                        string transportista = "";
                        if (item.Transportista != null)
                        {
                            transportista = item.Transportista.Descripcion.ToString();
                        }
                        estadosmodel.Add(new Estado()
                        {
                            id            = (int)itemEstado.Id,
                            fechahora     = itemEstado.FechaHora,
                            empleado      = itemEstado.Empleado.Entidad.Descripcion.ToString(),
                            estado        = itemEstado.Estado.ToString(),
                            observacion   = itemEstado.Observacion,
                            transportista = transportista,
                            enhorario     = item.EnHorario.ToString(),
                            cliente       = item.Cliente.ToString(),
                        });
                    }
                    retorno.Add(
                        new Rechazo()
                    {
                        id            = item.Id,
                        fechahora     = item.FechaHora,
                        motivo        = item.Motivo.ToString(),
                        estado        = item.UltimoEstado.ToString(),
                        bultos        = item.Bultos.ToString(),
                        codentrega    = item.Entrega.Codigo,
                        nombre        = item.Entrega.Descripcion,
                        vendedor      = item.Vendedor.Entidad.Descripcion.ToString(),
                        supventa      = item.SupervisorVenta.Entidad.Descripcion.ToString(),
                        supruta       = item.SupervisorRuta.Entidad.Descripcion.ToString(),
                        territorio    = item.Territorio,
                        estados       = estadosmodel.ToArray(),
                        usuariomobile = empleado.Entidad.Descripcion
                    });
                }
                return(Ok(retorno.ToArray()));
            }
            catch (Exception error)
            {
                LogicTracker.App.Web.Api.Providers.LogWritter.writeLog(error);
                return(BadRequest());
            }
        }