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