Ejemplo n.º 1
0
        public async Task SectorCercano(List <Sector> Sectores, Posicion MiPosicion, Compra compra)
        {
            try
            {
                List <SectorDistancia> sectorDistancias = new List <SectorDistancia>();

                foreach (var item in Sectores)
                {
                    var puntosSector = db.PuntoSector.Where(w => w.IdSector == item.IdSector).Select(x => new Posicion
                    {
                        Latitud = (double)x.Latitud, Longitud = (double)x.Longitud
                    }).ToList();

                    foreach (var punto in puntosSector)
                    {
                        var distancia = Geo.Distancia(MiPosicion.Latitud, MiPosicion.Longitud, (double)punto.Latitud, (double)punto.Longitud);
                        var idSector  = item.IdSector;
                        sectorDistancias.Add(new SectorDistancia {
                            Distancia = distancia, IdSector = idSector
                        });
                    }
                }
                var DistanciaMenor = sectorDistancias.OrderBy(o => o.Distancia).FirstOrDefault();


                Console.WriteLine(sectorDistancias.Min(x => x.Distancia));

                DistribuidoresPorSector(DistanciaMenor.IdSector, compra);
            }
            catch (Exception ex)
            {
                Debug.Write(ex.Message);
                throw;
            }
        }