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; } }