Esempio n. 1
0
        public RoteirosViewModel(Roteiro r)
        {
            Cidades        = r.Percurso.Select(str => "• " + str).ToList();
            Descricao      = r.Descricao;
            ImagemPercurso = r.ImagemPercurso;
            Nome           = r.Nome;
            List <Distrito> distritos = DistritoInteraction.GetDistritos().Result;
            List <Distrito> aux;

            Detalhes = new List <InformacaoCaminho>();
            r.Percurso.ForEach(c =>
            {
                aux = distritos.Where(d => d.Cidades.Where(city => city.Nome == c).Count() > 0).ToList();
                if (aux.Count() > 0)
                {
                    Cidade cid       = aux[0].Cidades.Where(city => city.Nome == c).ToList()[0];
                    List <Info> at   = new List <Info>();
                    List <Info> rest = new List <Info>();
                    List <Info> hot  = new List <Info>();
                    cid.Atracoes.Take(2).ToList().ForEach(a => at.Add(new Info(a.Nome, a.Imagem, new Params(a.Nome, aux[0].Nome, aux[0].ASCIIName))));
                    cid.Restaurantes.Take(2).ToList().ForEach(re => rest.Add(new Info(re.Nome, re.Imagem, new Params(re.Nome, aux[0].Nome, aux[0].ASCIIName))));
                    cid.Hoteis.Take(2).ToList().ForEach(h => hot.Add(new Info(h.Nome, h.Imagem, new Params(h.Nome, aux[0].Nome, aux[0].ASCIIName))));
                    Detalhes.Add(new InformacaoCaminho(cid.Nome, aux[0].Nome, at, rest, hot));
                }
            });
            ComandoAtracao     = new Command(CliqueAtracao);
            ComandoRestaurante = new Command(CliqueRestaurante);
            ComandoHotel       = new Command(CliqueHotel);
        }
Esempio n. 2
0
 public MainContentPageViewModel()
 {
     Distritos       = DistritoInteraction.GetDistritos().Result;
     ComandoDistrito = new Command(SelecionarDistrito);
     Roteiros        = RoteiroInteraction.GetRoteiros().Result;
     ComandoRoteiro  = new Command(SelecionarRoteiro);
 }
Esempio n. 3
0
 public PerfilViewModel()
 {
     ComandoEditarPerfil = new Command(EntrarEditarUtilizadorAsync);
     ComandoLogout       = new Command(TerminarSessaoAsync);
     RefreshCommand      = new Command(RefreshList);
     NomeUtilizador      = UserInteraction.user.Nome;
     Localidade          = UserInteraction.user.Cidade + ", " + UserInteraction.user.Distrito;
     TextoPontos         = UserInteraction.user.Pontos + " pontos";
     Imagem     = UserInteraction.user.Imagem;
     Historico  = UserInteraction.user.Historico;
     ImagemCapa = DistritoInteraction.GetDistritos().Result.FirstOrDefault(d => d.Nome == UserInteraction.user.Distrito).Imagem;
 }
Esempio n. 4
0
 public RegistarViewModel()
 {
     this.Nome       = "";
     this.Cidade     = "";
     this.Distrito   = "";
     this.Email      = "";
     this.Password   = "";
     ListaDistritos  = DistritoInteraction.GetDistritos().Result;
     Distritos       = ListaDistritos.Select(d => d.Nome).ToList();
     Cidades         = ListaDistritos.Select(d => d.Cidades.Select(c => c.Nome).ToList()).SelectMany(x => x).ToList();
     ComandoRegistar = new Command(RegistarUtilizadorAsync);
     ComandoComConta = new Command(JaTemConta);
 }
Esempio n. 5
0
        public OtherPerfilViewModel(string email)
        {
            Utilizador u = UserInteraction.GetUtilizador(email).Result;

            if (u == null)
            {
                App.Current.MainPage.Navigation.PopAsync();
            }
            Email          = email;
            RefreshCommand = new Command(RefreshList);
            NomeUtilizador = u.Nome;
            Localidade     = u.Cidade + ", " + u.Distrito;
            TextoPontos    = u.Pontos + " pontos";
            Imagem         = u.Imagem;
            Historico      = u.Historico;
            ImagemCapa     = DistritoInteraction.GetDistritos().Result.FirstOrDefault(d => d.Nome == u.Distrito).Imagem;
        }
Esempio n. 6
0
 public EditarPerfilViewModel()
 {
     Nome                 = "";
     Email                = "";
     Cidade               = "";
     Distrito             = "";
     Password             = "";
     Imagem               = UserInteraction.user.Imagem;
     NomeAntigo           = UserInteraction.user.Nome;
     EmailAntigo          = UserInteraction.user.Email;
     CidadeAntiga         = UserInteraction.user.Cidade;
     DistritoAntigo       = UserInteraction.user.Distrito;
     ListaDistritos       = DistritoInteraction.GetDistritos().Result;
     Distritos            = ListaDistritos.Select(d => d.Nome).ToList();
     Cidades              = ListaDistritos.Select(d => d.Cidades.Select(c => c.Nome).ToList()).SelectMany(x => x).ToList();
     ComandoEditar        = new Command(EditarUtilizadorAsync);
     ComandoAlterarImagem = new Command(EditarImagemPerfilAsync);
 }
Esempio n. 7
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. 8
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. 9
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. 10
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;
            }
        }