Esempio n. 1
0
        void CliqueHotel(object d)
        {
            Params   p     = (Params)d;
            Distrito dist  = DistritoInteraction.GetDistrito(p.DistritoASCII).Result;
            bool     found = false;

            for (int i = 0; !found && i < dist.Cidades.Count; i++)
            {
                for (int j = 0; !found && j < dist.Cidades[i].Hoteis.Count; i++)
                {
                    if (dist.Cidades[i].Hoteis[j].Nome == p.Nome)
                    {
                        App.Current.MainPage.Navigation.PushAsync(new HotelView(dist.Cidades[i].Hoteis[j]));
                        found = true;
                    }
                }
            }
        }
Esempio n. 2
0
        public DistritosInfViewModel(string distritoASCII)
        {
            Distrito distrito = DistritoInteraction.GetDistrito(distritoASCII).Result;

            Nome      = distrito.Nome;
            ASCIIName = distrito.ASCIIName;
            Historia  = distrito.Historia;
            Atracoes  = new List <Atracao>();
            foreach (Cidade c in distrito.Cidades)
            {
                if (c.Atracoes != null)
                {
                    foreach (Atracao a in c.Atracoes)
                    {
                        Atracoes.Add(a);
                    }
                }
            }
            Restaurantes = new List <Restaurante>();
            foreach (Cidade c in distrito.Cidades)
            {
                if (c.Restaurantes != null)
                {
                    foreach (Restaurante r in c.Restaurantes)
                    {
                        Restaurantes.Add(r);
                    }
                }
            }
            Hoteis = new List <Hotel>();
            foreach (Cidade c in distrito.Cidades)
            {
                if (c.Hoteis != null)
                {
                    foreach (Hotel h in c.Hoteis)
                    {
                        Hoteis.Add(h);
                    }
                }
            }
            ComandoAtracao     = new Command(SelecionarAtracao);
            ComandoHotel       = new Command(SelecionarHotel);
            ComandoRestaurante = new Command(SelecionarRestaurante);
        }
Esempio n. 3
0
        public AtracaoViewModel(string atracao, string distrito, string distritoASCII)
        {
            bool     found = false;
            Distrito d     = DistritoInteraction.GetDistrito(distritoASCII).Result;

            for (int i = 0; !found && i < d.Cidades.Count; i++)
            {
                for (int j = 0; !found && j < d.Cidades[i].Atracoes.Count; j++)
                {
                    if (d.Cidades[i].Atracoes[j].Nome == atracao)
                    {
                        Atracao = d.Cidades[i].Atracoes[j];
                        found   = true;
                    }
                }
            }
            Nome          = Atracao.Nome;
            Pontos        = d.Pontos;
            Localidade    = Atracao.Localidade;
            Historia      = Atracao.Historia;
            Imagem        = Atracao.Imagem;
            Distrito      = distrito;
            DistritoASCII = distritoASCII;
            Avaliacao c = null;

            if (Atracao.Classificacao != null)
            {
                c = Atracao.Classificacao.FirstOrDefault(x => x.Email.Equals(UserInteraction.user.Email));
            }
            List <Estrela> aux = new List <Estrela>();

            if (c != null)
            {
                int i;
                for (i = 0; i < c.Classificacao; i++)
                {
                    aux.Add(new Estrela("estrela_cor.png", i));
                }
                while (i < 5)
                {
                    aux.Add(new Estrela("estrela.png", i++));
                }
            }
            else
            {
                for (int i = 0; i < 5; i++)
                {
                    aux.Add(new Estrela("estrela.png", i));
                }
            }
            Estrelas = aux;
            if (Atracao.Classificacao != null)
            {
                List <int> l = Atracao.Classificacao.Select(x => x.Classificacao).ToList();
                Classificacao = l.Count > 0 ? l.Average() : 0.0;
            }
            else
            {
                Classificacao = 0.0;
            }
            ComandoEstrela = new Command(EstrelaClassificacao);
            Visitado       = UserInteraction.user.Historico.Where(x => string.Equals(x.Distrito, distrito) && string.Equals(x.Atracao, Atracao.Nome) && string.Equals(x.Imagem, Atracao.Imagem)).ToList().Count > 0;

            HttpClient          client   = new HttpClient();
            string              request  = "http://api.openweathermap.org/data/2.5/weather?q=" + distrito + ",PT&lang=pt&units=metric&appid=1decd1e1c8bd4de66f557d9924560d6a";
            HttpResponseMessage response = client.GetAsync(request).Result;

            if (response.IsSuccessStatusCode)
            {
                String  json = response.Content.ReadAsStringAsync().Result;
                dynamic data = JObject.Parse(json);
                WeatherDesc = (data["weather"][0]["description"]).ToString();
                WeatherIcon = "http://openweathermap.org/img/wn/" + (data["weather"][0]["icon"]).ToString() + ".png";
                Temp        = (data["main"]["temp"]).ToString() + " °C";
            }
        }
Esempio n. 4
0
        public void EstrelaClassificacao(object o)
        {
            int       index = (int)o;
            Avaliacao c     = new Avaliacao(UserInteraction.user.Email, index + 1);
            Distrito  d     = DistritoInteraction.GetDistrito(DistritoASCII).Result;
            Avaliacao help;
            bool      found = false;

            for (int i = 0; !found && i < d.Cidades.Count; i++)
            {
                for (int j = 0; !found && j < d.Cidades[i].Atracoes.Count; j++)
                {
                    if (d.Cidades[i].Atracoes[j].Nome.Equals(Atracao.Nome))
                    {
                        if (d.Cidades[i].Atracoes[j].Classificacao == null)
                        {
                            d.Cidades[i].Atracoes[j].Classificacao = new List <Avaliacao>();
                        }
                        if ((help = d.Cidades[i].Atracoes[j].Classificacao.FirstOrDefault(x => x.Email.Equals(UserInteraction.user.Email))) != null)
                        {
                            if (help.Classificacao == index + 1)
                            {
                                d.Cidades[i].Atracoes[j].Classificacao.Remove(help);
                            }
                            else
                            {
                                d.Cidades[i].Atracoes[j].Classificacao.Remove(help);
                                d.Cidades[i].Atracoes[j].Classificacao.Add(c);
                            }
                        }
                        else
                        {
                            d.Cidades[i].Atracoes[j].Classificacao.Add(c);
                        }
                        Atracao = d.Cidades[i].Atracoes[j];
                        found   = true;
                    }
                }
            }
            DistritoInteraction.UpdateDistrito(DistritoASCII, d);
            c = Atracao.Classificacao.FirstOrDefault(x => x.Email.Equals(UserInteraction.user.Email));
            List <Estrela> aux = new List <Estrela>();

            if (c != null)
            {
                int i;
                for (i = 0; i < c.Classificacao; i++)
                {
                    aux.Add(new Estrela("estrela_cor.png", i));
                }
                while (i < 5)
                {
                    aux.Add(new Estrela("estrela.png", i++));
                }
            }
            else
            {
                for (int i = 0; i < 5; i++)
                {
                    aux.Add(new Estrela("estrela.png", i));
                }
            }
            Estrelas = aux;
            if (Atracao.Classificacao != null)
            {
                List <int> l = Atracao.Classificacao.Select(x => x.Classificacao).ToList();
                Classificacao = l.Count > 0 ? l.Average() : 0.0;
            }
            else
            {
                Classificacao = 0.0;
            }
        }