private async Task InsertEnquetes() { var enquetes = EnqueteMock.MockEnquetes(); var db = new Repositorio<Enquete>(); await db.InserirTodos(enquetes); }
public async Task<ObservableCollection<Enquete>> GetEnquetesPublicas() { Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Buscando Enquetes..."); try { if (App.PushWooshToken != null && !String.IsNullOrEmpty(App.PushWooshToken)) { var dbUsuario = new Repositorio<Usuario>(); var _user = (await dbUsuario.RetornarTodos()).FirstOrDefault(); await this.service.GravaChavePushWoosh(App.PushWooshToken, _user.Id); } var db = new Repositorio<Enquete>(); await this.service.RetornarEnqueteTipoQuiz(); var ultimaEnquete = 0; ICollection<Enquete> listaEnquetes = null; var temRegistro = await db.ExisteEnquetePublica(); if (!temRegistro) { listaEnquetes = await this.service.RetornarEnquetesPublicas(-1); await db.InserirTodos(listaEnquetes.ToList()); foreach (var item in listaEnquetes) { if (!String.IsNullOrEmpty(item.Imagem)) await DependencyService.Get<ISaveAndLoadFile>().BaixaImagemSalvarEmDisco(item.Imagem, Constants.baseImageAddress); if (!String.IsNullOrEmpty(item.UrlVideo)) { var str = new Uri(item.UrlVideo).Segments; var url = String.Format(Constants.uriYoutubeThumbnail, str[2]); await DependencyService.Get<ISaveAndLoadFile>().BaixaThumbnailYoutubeSalvarEmDisco(url, String.Concat(str[2], ".jpg")); } foreach (var resposta in item.Pergunta.Respostas) { if (!String.IsNullOrEmpty(resposta.Imagem)) await DependencyService.Get<ISaveAndLoadFile>().BaixaImagemSalvarEmDisco(resposta.Imagem, Constants.baseImageAddress); } } } else { ultimaEnquete = (await db.RetornarTodos()).OrderByDescending(e => e.Id).First(e => e.ServerEnqueteId != -1 && (e.Tipo == EnumTipoEnquete.Publica || e.Tipo == EnumTipoEnquete.Quiz)).ServerEnqueteId; listaEnquetes = await this.service.RetornarEnquetesPublicas(ultimaEnquete); if (listaEnquetes != null && listaEnquetes.Any()) { await db.InserirTodos(listaEnquetes.ToList()); foreach (var item in listaEnquetes) { if (!String.IsNullOrEmpty(item.Imagem)) await DependencyService.Get<ISaveAndLoadFile>().BaixaImagemSalvarEmDisco(item.Imagem, Constants.baseImageAddress); if (!String.IsNullOrEmpty(item.UrlVideo)) { var str = new Uri(item.UrlVideo).Segments; var url = String.Format(Constants.uriYoutubeThumbnail, str[2]); await DependencyService.Get<ISaveAndLoadFile>().BaixaThumbnailYoutubeSalvarEmDisco(url, String.Concat(str[2], ".jpg")); } } } var enquetesNoTelefone = (await db.RetornarTodos()).Where(e => e.Tipo == EnumTipoEnquete.Publica || e.Tipo == EnumTipoEnquete.Quiz); foreach (var enquete in enquetesNoTelefone) { if (!listaEnquetes.Contains(enquete)) listaEnquetes.Add(enquete); } } Acr.UserDialogs.UserDialogs.Instance.HideLoading(); //return new ObservableCollection<Enquete>(listaEnquetes.Where(e => e.Tipo == EnumTipoEnquete.Publica)); return await this.GetMensagens(listaEnquetes.Where(e => e.Tipo == EnumTipoEnquete.Publica || e.Tipo == EnumTipoEnquete.Quiz)); } catch (Exception ex) { Insights.Report(ex); return null; } }
public async Task<ObservableCollection<Enquete>> GetMensagens(IEnumerable<Enquete> enquetes) { Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Buscando Mensagens..."); var db = new Repositorio<Enquete>(); try { var ultimaEnquete = 0; ICollection<Enquete> listaEnquetes = null; var temRegistro = await db.ExisteMensagem(); if (!temRegistro) { listaEnquetes = await this.service.RetornarMensagens(-1, 1); if (listaEnquetes != null && listaEnquetes.Any()) { await db.InserirTodos(listaEnquetes.ToList()); foreach (var item in listaEnquetes) { if (!String.IsNullOrEmpty(item.Imagem)) await DependencyService.Get<ISaveAndLoadFile>().BaixaImagemSalvarEmDisco(item.Imagem, Constants.baseImageAddress); if (!String.IsNullOrEmpty(item.UrlVideo)) { var str = new Uri(item.UrlVideo).Segments; var url = String.Format(Constants.uriYoutubeThumbnail, str[2]); await DependencyService.Get<ISaveAndLoadFile>().BaixaThumbnailYoutubeSalvarEmDisco(url, String.Concat(str[2], ".jpg")); } } } } else { ultimaEnquete = (await db.RetornarTodos()).OrderByDescending(e => e.Id).First(e => e.ServerEnqueteId != -1 && e.Tipo == EnumTipoEnquete.Mensagem).ServerEnqueteId; listaEnquetes = await this.service.RetornarMensagens(ultimaEnquete, 1); if (listaEnquetes != null && listaEnquetes.Any()) { await db.InserirTodos(listaEnquetes.ToList()); foreach (var item in listaEnquetes) { if (!String.IsNullOrEmpty(item.Imagem)) await DependencyService.Get<ISaveAndLoadFile>().BaixaImagemSalvarEmDisco(item.Imagem, Constants.baseImageAddress); if (!String.IsNullOrEmpty(item.UrlVideo)) { var str = new Uri(item.UrlVideo).Segments; var url = String.Format(Constants.uriYoutubeThumbnail, str[2]); await DependencyService.Get<ISaveAndLoadFile>().BaixaThumbnailYoutubeSalvarEmDisco(url, String.Concat(str[2], ".jpg")); } } } var enquetesNoTelefone = (await db.RetornarTodos()).Where(e => e.Tipo == EnumTipoEnquete.Mensagem); if (listaEnquetes == null) listaEnquetes = enquetesNoTelefone.ToList(); else { foreach (var enquete in enquetesNoTelefone) { if (!listaEnquetes.Contains(enquete)) listaEnquetes.Add(enquete); } } } Acr.UserDialogs.UserDialogs.Instance.HideLoading(); IEnumerable<Enquete> x = null; if (listaEnquetes != null && listaEnquetes.Any()) x = enquetes.Union(listaEnquetes.Where(e => e.Tipo == EnumTipoEnquete.Mensagem)); else x = enquetes; return new ObservableCollection<Enquete>(x); } catch (Exception ex) { Insights.Report(ex); return null; } }
public async Task<ObservableCollection<Enquete>> GetEnquetesDeSeuInteresse() { Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Buscando Enquetes..."); var db = new Repositorio<Enquete>(); var dbUsuario = new Repositorio<Usuario>(); var usuario = (await dbUsuario.RetornarTodos()).First(); var ultimaEnquete = 0; ICollection<Enquete> listaEnquetes = null; var temRegistro = await db.ExisteEnqueteInteresse(); if (!temRegistro) { listaEnquetes = await this.service.RetornarEnquetesInteresse(-1, usuario.Id); await db.InserirTodos(listaEnquetes.ToList()); foreach (var item in listaEnquetes) { if (!String.IsNullOrEmpty(item.Imagem)) await DependencyService.Get<ISaveAndLoadFile>().BaixaImagemSalvarEmDisco(item.Imagem, Constants.baseImageAddress); if (!String.IsNullOrEmpty(item.UrlVideo)) { var str = new Uri(item.UrlVideo).Segments; var url = String.Format(Constants.uriYoutubeThumbnail, str[2]); await DependencyService.Get<ISaveAndLoadFile>().BaixaThumbnailYoutubeSalvarEmDisco(url, String.Concat(str[2], ".jpg")); } } } else { Expression<Func<Enquete,bool>> filtro = (f) => f.Tipo == EnumTipoEnquete.Interesse; ultimaEnquete = (await db.ProcurarPorColecao(filtro)).OrderByDescending(e => e.ServerEnqueteId).First().ServerEnqueteId; listaEnquetes = await this.service.RetornarEnquetesInteresse(ultimaEnquete, usuario.Id); if (listaEnquetes != null && listaEnquetes.Any()) { foreach (var item in listaEnquetes) { Expression<Func<Enquete,bool>> porServerId = (x) => x.ServerEnqueteId == item.ServerEnqueteId; var achou = await db.ProcurarPorFiltro(porServerId); if (achou != null) item.Id = achou.Id; } await db.InserirTodos(listaEnquetes.ToList()); foreach (var item in listaEnquetes) { if (!String.IsNullOrEmpty(item.Imagem)) await DependencyService.Get<ISaveAndLoadFile>().BaixaImagemSalvarEmDisco(item.Imagem, Constants.baseImageAddress); if (!String.IsNullOrEmpty(item.UrlVideo)) { var str = new Uri(item.UrlVideo).Segments; var url = String.Format(Constants.uriYoutubeThumbnail, str[2]); await DependencyService.Get<ISaveAndLoadFile>().BaixaThumbnailYoutubeSalvarEmDisco(url, String.Concat(str[2], ".jpg")); } } } var enquetesNoTelefone = (await db.RetornarTodos()).Where(e => e.Tipo == EnumTipoEnquete.Interesse); foreach (var enquete in enquetesNoTelefone) { if (!listaEnquetes.Contains(enquete)) listaEnquetes.Add(enquete); } } ICollection<Banner> banners = null; List<Banner> ultimoBanner; var dbBanner = new Repositorio<Banner>(); var categorias = String.Empty; var dbUsuarioCategoria = new Repositorio<UsuarioCategoria>(); foreach (var item in usuario.CategoriaMobileSelection.Split(';')) { categorias += item + ';'; } categorias = categorias.TrimEnd(';'); var temBannerGravado = await db.ExisteBanner(); if (!temBannerGravado) { banners = await this.service.RetornarBanners(-1, 1, categorias); foreach (var banner in banners.ToList()) { await DependencyService.Get<ISaveAndLoadFile>().BaixaImagemSalvarEmDisco(banner.FileName, Constants.baseImageAddress); } await dbBanner.InserirTodos(banners.ToList()); } else { ultimoBanner = await dbBanner.RetornarTodos(); banners = ultimoBanner != null ? await this.service.RetornarBanners(ultimoBanner.OrderByDescending(e => e.Id).First().Id, 1, categorias) : await this.service.RetornarBanners(-1, 1, categorias); foreach (var banner in banners.ToList()) { await DependencyService.Get<ISaveAndLoadFile>().BaixaImagemSalvarEmDisco(banner.FileName, Constants.baseImageAddress); } await dbBanner.InserirTodos(banners.ToList()); } var b = await dbBanner.RetornarTodos(); this.Banners = new ObservableCollection<Banner>(b.ToList()); Acr.UserDialogs.UserDialogs.Instance.HideLoading(); return new ObservableCollection<Enquete>(listaEnquetes.Where(e => e.Tipo == EnumTipoEnquete.Interesse)); }
private async Task GravarResposta() { Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Enviando"); if (this.Respostas != null) { var db = new Repositorio<Resposta>(); if (await db.InserirTodos(this.Respostas)) { var dbEnquete = new Repositorio<Enquete>(); var enquete = (await dbEnquete.RetornarTodos()).First(e => e.PerguntaId == this.Pergunta.Id); enquete.EnqueteRespondida = true; if (await dbEnquete.Atualizar(enquete)) { foreach (var resposta in this.Respostas.Where(r=>r.Respondida)) { var perguntaResposta = new PerguntaResposta(); var dbUsuario = new Repositorio<Usuario>(); var usuarioLogado = (await dbUsuario.RetornarTodos()).First(); perguntaResposta.RespostaId = resposta.RespostaServerId; perguntaResposta.PerguntaId = enquete.PerguntaServerId == 0 ? enquete.Pergunta.PerguntaServerId : enquete.PerguntaServerId; perguntaResposta.UsuarioId = usuarioLogado.Id; var salvouNoServidor = await this.service.CadastrarRespostaEnquete(perguntaResposta); if (salvouNoServidor == null || !salvouNoServidor.Any()) { Acr.UserDialogs.UserDialogs.Instance.HideLoading(); await Acr.UserDialogs.UserDialogs.Instance.AlertAsync("Erro ao salvar resposta, tente novamente"); return; } var dbperguntaResposta = new Repositorio<PerguntaResposta>(); await dbperguntaResposta.InserirTodos(salvouNoServidor.ToList()); var dbResposta = new Repositorio<Resposta>(); foreach (var pr in salvouNoServidor) { Expression<Func<Resposta,bool>> porPerguntaServerId = (x) => x.PerguntaServerId == pr.PerguntaId && x.RespostaServerId == pr.RespostaId; var _resposta = await dbResposta.ProcurarPorFiltro(porPerguntaServerId); _resposta.percentualResposta = pr.percentual; await dbResposta.Atualizar(_resposta); } } if (enquete.TemVoucher) { var dbQuiz = new Repositorio<RespostaQuiz>(); if ((await dbQuiz.RetornarTodos()).Any(x => x.EnqueteId == enquete.ServerEnqueteId)) { this.Pergunta.correta = (await dbQuiz.RetornarTodos()).Any(c => c.EnqueteId == enquete.ServerEnqueteId && c.RespostaId == this.Respostas.First(r => r.Respondida).RespostaServerId); Acr.UserDialogs.UserDialogs.Instance.HideLoading(); var pagina = Activator.CreateInstance(typeof(VotoSalvoComVoucherQuizPage), new[]{ this.Pergunta }) as VotoSalvoComVoucherQuizPage; await this.Navigation.PushModalAsync(pagina); } else { Acr.UserDialogs.UserDialogs.Instance.HideLoading(); var pagina = Activator.CreateInstance(typeof(VotoSalvoComVoucherPage), new[]{ this.Pergunta, }) as VotoSalvoComVoucherPage; await this.Navigation.PushModalAsync(pagina); } } else { var dbQuiz = new Repositorio<RespostaQuiz>(); if ((await dbQuiz.RetornarTodos()).Any(x => x.EnqueteId == enquete.ServerEnqueteId)) { this.Pergunta.correta = (await dbQuiz.RetornarTodos()).Any(c => c.EnqueteId == enquete.ServerEnqueteId && c.RespostaId == this.Respostas.First(r => r.Respondida).RespostaServerId); Acr.UserDialogs.UserDialogs.Instance.HideLoading(); var pagina = Activator.CreateInstance(typeof(VotoSalvoQuizPage), new[]{ this.Pergunta }) as VotoSalvoQuizPage; await this.Navigation.PushModalAsync(pagina); } else { Acr.UserDialogs.UserDialogs.Instance.HideLoading(); var pagina = Activator.CreateInstance(typeof(VotoSalvoPage), new[]{ this.Pergunta }) as VotoSalvoPage; await this.Navigation.PushModalAsync(pagina); } } } } } else { Acr.UserDialogs.UserDialogs.Instance.HideLoading(); await Acr.UserDialogs.UserDialogs.Instance.AlertAsync(AppResources.TituloErro, AppResources.MsgErroAoResponder, "OK"); } }
public async Task TrataClique() { Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Importando..."); var service = App.Container.Resolve<ILogin>(); var dbUsuario = new Repositorio<Usuario>(); var _usuario = (await dbUsuario.RetornarTodos()).FirstOrDefault(); if (_usuario != null) { var friends = await DependencyService.Get<IFacebook>().GetAmigos(_usuario.FacebookToken); var dbAmigos = new Repositorio<Amigo>(); var tels = friends.data.Distinct().Select(x => x.id).ToList(); var existemNoServer = await service.RetornarAmigos(tels); var amigos = new List<Amigo>(); if (existemNoServer != null && existemNoServer.Any()) { foreach (var item in existemNoServer.Distinct()) { amigos.Add(new Amigo { Nome = item.Nome, FacebookID = item.FacebookID, UsuarioId = item.Id }); } await dbAmigos.InserirTodos(amigos.Distinct().ToList()); } this.listViewContatos.ItemsSource = (await dbAmigos.RetornarTodos()).Distinct(); var cellTemplate = new DataTemplate(typeof(TextCell)); cellTemplate.SetBinding(TextCell.TextProperty, "Nome"); this.listViewContatos.ItemTemplate = cellTemplate; Acr.UserDialogs.UserDialogs.Instance.HideLoading(); } else Acr.UserDialogs.UserDialogs.Instance.ShowError("Problemas com a autenticaĆ§Ć£o"); }
public async Task RetornarEnqueteTipoQuiz() { using (var client = CallAPI.RetornaClientHttp()) { response = await client.GetAsync(string.Format("{0}", Constants.uriGetEnquetesQuiz)); if (response.IsSuccessStatusCode) { var quizResponse = response.Content.ReadAsStringAsync().Result; var quisToJson = JsonConvert.DeserializeObject(quizResponse); var listaQuiz = JsonConvert.DeserializeObject<List<RespostaQuiz>>(quisToJson.ToString()); var dbQuiz = new Repositorio<RespostaQuiz>(); await dbQuiz.InserirTodos(listaQuiz); } } }
protected async override void OnAppearing() { try { var progress = UserDialogs.Instance.Progress(AppResources.MsgLoading); progress.Show(); #region -- FAKE DATABASE -- // var enquetes = EnqueteMock.MockEnquetes(); // var dbEnquete = new Repositorio<Enquete>(); // if (!(await dbEnquete.RetornarTodos()).Any()) // await dbEnquete.InserirTodos(enquetes); // // var usuario = UsuarioMock.MockUsuario(); // var dbUsuario = new Repositorio<Usuario>(); // if (!(await dbUsuario.RetornarTodos()).Any()) // await dbUsuario.Inserir(usuario); // // var amigos = AmigoMock.RetornaListaMockAmigo(); // var dbAmigo = new Repositorio<Amigo>(); // if (!(await dbAmigo.RetornarTodos()).Any()) // await dbAmigo.InserirTodos(amigos); #endregion #region -- Atualiza Categorias this.BindingContext = model = App.Container.Resolve<ColetaDadosViewModel>(); var dbCategoria = new Repositorio<Categoria>(); var ultimaCategoria = -1; if (await dbCategoria.ExisteCategoria()) ultimaCategoria = (await dbCategoria.RetornarTodos()).OrderByDescending(c => c.Id).First().Id; var categorias = await this.model.RetornarCategoriasDoServidor(ultimaCategoria); await dbCategoria.InserirTodos(categorias.ToList()); try { var _categorias = await dbCategoria.RetornarTodos(); foreach (var item in categorias) { if (!String.IsNullOrEmpty(item.Imagem)) await DependencyService.Get<ISaveAndLoadFile>().BaixaImagemSalvarEmDisco(item.Imagem, Constants.baseImageAddress); } } catch (Exception ex) { Insights.Report(ex); } #endregion //Simula o carregamento de dados. Device.StartTimer(TimeSpan.FromMilliseconds(500), () => { if (progress.IsShowing && progress.PercentComplete < 100) progress.PercentComplete = progress.PercentComplete + 10; else if (progress.IsShowing && progress.PercentComplete >= 100) { progress.Hide(); IsLogado(); } return true; }); } catch (Exception ex) { Insights.Report(ex); } }