Exemplo n.º 1
0
        //Obtener Negocio cercano
        public List <NegocioObtenerCercanosDto> ObtenerCercanos(RequestNegocioObtenerCercanosDto filtro)
        {
            List <NegocioObtenerCercanosDto> resultado = new List <NegocioObtenerCercanosDto>();

            try
            {
                const string query = "Maestro.usp_Negocio_ObtenerCercanos";

                using (var cn = HelperClass.ObtenerConeccion())
                {
                    if (cn.State == ConnectionState.Closed)
                    {
                        cn.Open();
                    }

                    resultado = cn.Query <NegocioObtenerCercanosDto>(query, new
                    {
                        filtro.Buscar,
                        filtro.CantidadKilometros,
                        filtro.UbicacionLongitudInicio,
                        filtro.UbicacionLatitudInicio,
                        filtro.IdUsuario//,
                        //filtro.NumeroPagina,
                        //filtro.CantidadRegistros,
                        //filtro.ColumnaOrden,
                        //filtro.DireccionOrden
                    }, commandType: CommandType.StoredProcedure).ToList();
                }
            }
            catch (Exception ex)
            {
                Log(Level.Error, (ex.InnerException == null ? ex.Message : ex.InnerException.Message));
            }
            return(resultado);
        }
Exemplo n.º 2
0
        //Obtener Negocios cercanos
        public List <NegocioObtenerCercanosDto> ObtenerCercanos(RequestNegocioObtenerCercanosDto prm)
        {
            if (prm == null)
            {
                prm = new RequestNegocioObtenerCercanosDto();
            }
            //if (prm.NumeroPagina == 0) prm.NumeroPagina = 1;
            //if (prm.CantidadRegistros == 0) prm.CantidadRegistros = 1000;
            //if (string.IsNullOrEmpty(prm.ColumnaOrden)) prm.ColumnaOrden = "IdNegocio";
            //if (string.IsNullOrEmpty(prm.DireccionOrden)) prm.DireccionOrden = "desc";
            if (prm.CantidadKilometros == 0)
            {
                prm.CantidadKilometros = 1;
            }

            var listado = _adNegocio.ObtenerCercanos(prm);

            if (listado == null)
            {
                listado = new List <NegocioObtenerCercanosDto>();
            }

            DescartarDistanciaSegunParametro(ref listado, prm);

            return(listado);
        }
Exemplo n.º 3
0
        public async Task <ActionResult <ResponseNegocioObtenerCercanosDto> > ObtenerCercanos([FromBody] RequestNegocioObtenerCercanosDto filtro)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            ResponseNegocioObtenerCercanosDto respuesta = new ResponseNegocioObtenerCercanosDto();

            if (filtro.IdUsuario == 0)
            {
                respuesta.ListaError = new List <ErrorDto>();
                respuesta.ListaError.Add(new ErrorDto
                {
                    Mensaje = "El parametro IdUsuario es requerido"
                });
                respuesta.CantidadTotalRegistros = 0;
                respuesta.ProcesadoOk            = 0;
                respuesta.Cuerpo = null;
            }
            else
            {
                var result = await Task.FromResult(_lnNegocio.ObtenerCercanos(filtro));

                respuesta.ProcesadoOk = 1;
                respuesta.Cuerpo      = result;

                if (result.Any())
                {
                    respuesta.CantidadTotalRegistros = result.Count();
                }

                return(Ok(respuesta));
            }
            return(BadRequest(respuesta));
        }
Exemplo n.º 4
0
 //Obtener Negocios cercanos
 private void DescartarDistanciaSegunParametro(ref List <NegocioObtenerCercanosDto> lista, RequestNegocioObtenerCercanosDto prm)
 {
     try
     {
         if (lista.Any())
         {
             for (int i = lista.Count - 1; i >= 0; i--)
             {
                 double distancia = Infraestructura.Utilitario.Util.Haversine(
                     prm.UbicacionLatitudInicio,
                     prm.UbicacionLongitudInicio,
                     Convert.ToDouble(lista[i].Latitud),
                     Convert.ToDouble(lista[i].Longitud)
                     );
                 if (Math.Abs(distancia) > Convert.ToDouble(prm.CantidadKilometros))
                 {
                     lista.RemoveAt(i);
                 }
                 else
                 {
                     lista[i].DistanciaKm = distancia;
                 }
             }
         }
     }
     catch
     {
     }
 }