예제 #1
0
        private static void ProcurarAmigoProximo(out double latitude, out double longitude)
        {
            while (true)
            {
                Console.WriteLine("");
                Console.WriteLine("Entre com a sua latitude:");;

                if (double.TryParse(Console.ReadLine(), out latitude))
                {
                    if (new Util.Localizacao().IsLatitude(latitude))
                    {
                        break;
                    }
                }

                Console.WriteLine("");
                Console.WriteLine("Digite uma latitude valida");
            }

            while (true)
            {
                Console.WriteLine("");
                Console.WriteLine("Entre com a sua longitude:");

                if (double.TryParse(Console.ReadLine(), out longitude))
                {
                    if (new Util.Localizacao().IsLongitude(longitude))
                    {
                        break;
                    }
                }

                Console.WriteLine("");
                Console.WriteLine("Digite uma longitude valida");
            }

            List <Model.Amigo> lstAmigos = new Model.Amigo().ListarAmigos(latitude, longitude);

            Console.WriteLine("Amigos mais proximos:");

            foreach (var item in lstAmigos.OrderByDescending(o => o.Distancia).Take(3))
            {
                Console.WriteLine("Amigo: " + item.Nome);
                Console.WriteLine("Distancia KM: " + item.Distancia);
            }
        }
예제 #2
0
        public List <Amigo> ListarAmigos(double latitudeAtual, double longitudeAtual)
        {
            using (SqlConnection cnn = new SqlConnection(conexao))
            {
                using (SqlCommand cmd = new SqlCommand(
                           @"SELECT
                        Nome,
                        latitude,
                        longitude
                    FROM
                        dbo.tbAmigo", cnn))
                {
                    cmd.CommandType = System.Data.CommandType.Text;

                    cnn.Open();
                    using (SqlDataReader dr = cmd.ExecuteReader())
                    {
                        List <Amigo> lstAmigo = new List <Amigo>();

                        while (dr.Read())
                        {
                            Amigo objAmigo = new Amigo();

                            objAmigo.Nome      = Convert.ToString(dr["Nome"] == DBNull.Value ? "" : dr["Nome"]);
                            objAmigo.Latitude  = Convert.ToDouble(dr["Latitude"] == DBNull.Value ? "" : dr["Latitude"]);
                            objAmigo.Longitude = Convert.ToDouble(dr["Longitude"] == DBNull.Value ? "" : dr["Longitude"]);
                            objAmigo.Distancia = Convert.ToDouble(new Util.Localizacao().CalculateDistanceInKilometer(
                                                                      latitudeAtual, longitudeAtual, objAmigo.Latitude, objAmigo.Longitude));

                            lstAmigo.Add(objAmigo);
                        }

                        return(lstAmigo);
                    }
                }
            }
        }