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); }
public MainContentPageViewModel() { Distritos = DistritoInteraction.GetDistritos().Result; ComandoDistrito = new Command(SelecionarDistrito); Roteiros = RoteiroInteraction.GetRoteiros().Result; ComandoRoteiro = new Command(SelecionarRoteiro); }
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; }
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); }
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; }
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); }
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; } } } }
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); }
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"; } }
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; } }