public static PedidoMapa ConvertirPedidoAPedidoMapa(Pedidos pedido)
        {
            bool postulado = false;

            if (pedido.Postulaciones != null)
            {
                postulado = pedido.Postulaciones.Any(x => x.IdPedido == pedido.IdPedido && x.IdUsuarioPostulado == pedido.AspNetUsers.Id); //ver: No anda
            }
            PedidoMapa pedidoDetalles = new PedidoMapa
            {
                IdPedido            = pedido.IdPedido,
                IdCliente           = pedido.idCliente,
                NombreCliente       = pedido.AspNetUsers.NombreApellido,
                DescripcionPedido   = pedido.descripcion_pedido,
                ObservacionesPedido = pedido.observaciones_pedido != null ? pedido.observaciones_pedido : "Ninguna",
                DireccionOrigen     = pedido.calle_origen + " " + pedido.nro_calle_origen + ", " + pedido.Localidades.Nombre,
                DireccionDestino    = pedido.calle_destino + " " + pedido.nro_calle_destino + ", " + pedido.Localidades1.Nombre,
                Precio    = pedido.precio_predido,
                LatOrigen = Convert.ToDouble(pedido.lat_origen),
                LngOrigen = Convert.ToDouble(pedido.lng_origen),
                Postulado = postulado
            };

            return(pedidoDetalles);
        }
        public static List <PedidoMapa> ObtenerPendientesApi()
        {
            using (TeloBuscoEntities db = new TeloBuscoEntities())
            {
                try
                {
                    int idPendiente  = EstadosServicio.obtenerIdEstadoPedidoPorDescripcion("Pendiente");
                    var listaPedidos = db.Pedidos.Include("Estados")
                                       .Include("Localidades")
                                       .Include("Localidades1")
                                       .Include("AspNetUsers")
                                       .Include("Postulaciones")
                                       .Where(x => x.id_estado == idPendiente)
                                       .ToList();
                    List <PedidoMapa> pedidosPendientes = new List <PedidoMapa>();
                    foreach (var pedido in listaPedidos)
                    {
                        Coordenada origen  = new Coordenada();
                        Coordenada destino = new Coordenada();
                        if (pedido.lat_origen != null && pedido.lng_origen != null)
                        {
                            origen.lat = Convert.ToDouble(pedido.lat_origen);
                            origen.lng = Convert.ToDouble(pedido.lng_origen);
                        }

                        if (pedido.lat_destino != null && pedido.lng_destino != null)
                        {
                            destino.lat = Convert.ToDouble(pedido.lat_destino);
                            destino.lng = Convert.ToDouble(pedido.lng_destino);
                        }
                        var rangoPrecios = Comunes.ObtenerRangoPrecios(origen, destino);
                        //ver postulado
                        PedidoMapa pedidoMapa = new PedidoMapa()
                        {
                            IdPedido            = pedido.IdPedido,
                            IdCliente           = pedido.idCliente,
                            NombreCliente       = pedido.AspNetUsers.NombreApellido,
                            DescripcionPedido   = pedido.descripcion_pedido,
                            ObservacionesPedido = pedido.observaciones_pedido != null? pedido.observaciones_pedido : "Ninguna",
                            DireccionOrigen     = pedido.calle_origen + " " + pedido.nro_calle_origen + ", " + pedido.Localidades.Nombre,
                            DireccionDestino    = pedido.calle_destino + " " + pedido.nro_calle_destino + ", " + pedido.Localidades1.Nombre,
                            Distancia           = Math.Round(Comunes.DistanciaEntreDosPuntosEnKM(origen, destino), 2),
                            Precio    = Math.Round(pedido.precio_predido, 2),
                            LatOrigen = pedido.lat_origen != null?Convert.ToDouble(pedido.lat_origen) : 0,
                                            LngOrigen = pedido.lng_origen != null?Convert.ToDouble(pedido.lng_origen) : 0,
                                                            Postulado    = false,
                                                            PrecioMinimo = rangoPrecios.PrecioMinimo,
                                                            PrecioMaximo = rangoPrecios.PrecioMaximo
                        };
                        pedidosPendientes.Add(pedidoMapa);
                    }
                    return(pedidosPendientes);
                }
                catch (Exception ex)
                {
                    return(null);
                }
            }
        }
 public static List <PedidoMapa> ObtenerPedidosCercanos(Coordenada posicionUsuario, int distancia)
 {
     using (TeloBuscoEntities db = new TeloBuscoEntities())
     {
         try
         {
             db.Configuration.LazyLoadingEnabled   = false;
             db.Configuration.ProxyCreationEnabled = false;
             int codigoEstadoPendiente = EstadosServicio.obtenerIdEstadoPedidoPorDescripcion("Pendiente");
             var pedidos = db.Pedidos.Include("AspNetUsers")
                           .Include("Localidades")
                           .Include("Localidades1")
                           .Include("Postulaciones")
                           .Where(x => x.id_estado == codigoEstadoPendiente)
                           .ToList();
             List <PedidoMapa> pedidosCercanos = new List <PedidoMapa>();
             foreach (var pedido in pedidos)
             {
                 if (pedido.lat_origen != null && pedido.lng_origen != null)
                 {
                     Coordenada posicionPedido = new Coordenada();
                     posicionPedido.lat = Convert.ToDouble(pedido.lat_origen);
                     posicionPedido.lng = Convert.ToDouble(pedido.lng_origen);
                     double distanciaPedido = Utilidades.Comunes.DistanciaEntreDosPuntosEnKM(posicionUsuario, posicionPedido);
                     if (distanciaPedido <= distancia)
                     {
                         PedidoMapa pedidoMapa = ConvertirPedidoAPedidoMapa(pedido);
                         pedidosCercanos.Add(pedidoMapa);
                     }
                 }
             }
             return(pedidosCercanos);
         }
         catch (Exception)
         {
             return(null);
         }
     }
 }
 public PostulacionesViewModel()
 {
     pedidoDetalles = new PedidoMapa();
 }