public async Task ValidaLogin() { var autenticado = await this.service.FazerLogin(this.login, this.senha); if (autenticado) { var dbUsuario = new Repositorio<Usuario>(); var _usuarioLogado = App.Current.Properties.ContainsKey("UsuarioLogado") ? App.Current.Properties["UsuarioLogado"] as Usuario : null; var temUsuario = (await dbUsuario.RetornarTodos()).FirstOrDefault(); if (_usuarioLogado != null) await dbUsuario.InserirAsync(_usuarioLogado); temUsuario = (await dbUsuario.RetornarTodos()).FirstOrDefault(); if (temUsuario != null) await dbUsuario.InserirAsync(_usuarioLogado); var dbSession = new Repositorio<ControleSession>(); await dbSession.Inserir(new ControleSession { Logado = true }); if (temUsuario != null) { App.Current.Properties["UsuarioLogado"] = _usuarioLogado; await this.Navigation.PushModalAsync(new MainPage()); } else await Acr.UserDialogs.UserDialogs.Instance.AlertAsync("Erro na gravação do usuário"); } else UserDialogs.Instance.Alert("Dados incorretos!", "Erro", "OK"); }
public async Task CarregarPergunta(int enqueteId) { Device.BeginInvokeOnMainThread(() => { Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Carregando"); }); var dbEnquete = new Repositorio<Enquete>(); var _enquete = (await dbEnquete.RetornarTodos()).First(p => p.Id == enqueteId); var ehInteresse = _enquete.Tipo == EnumTipoEnquete.Interesse; if (_enquete.EnqueteRespondida) { Device.BeginInvokeOnMainThread(() => { Acr.UserDialogs.UserDialogs.Instance.HideLoading(); }); await this.Navigation.PushAsync(new PerguntaRespondidaPage((int)_enquete.PerguntaId, _enquete.Imagem, _enquete.UrlVideo, ehInteresse, _enquete.Id, _enquete.UsuarioCriador, _enquete.TemVoucher)); } else { Device.BeginInvokeOnMainThread(() => { Acr.UserDialogs.UserDialogs.Instance.HideLoading(); }); await this.Navigation.PushAsync(new PerguntaPage((int)_enquete.PerguntaId, _enquete.Imagem, _enquete.UrlVideo, _enquete.TemVoucher, ehInteresse, _enquete.Id, _enquete.UsuarioCriador)); } }
public async Task RetornarAmigos() { var db = new Repositorio<Amigo>(); var amigos = (await db.RetornarTodos()).Distinct(); this.Amigos = new ObservableCollection<Amigo>(amigos.Distinct().OrderBy(x => x.Nome)); }
protected async override void OnAppearing() { base.OnAppearing(); var dbSession = new Repositorio<ControleSession>(); var isLogado = await dbSession.RetornarTodos(); if (isLogado != null && isLogado.Any(c => c.Logado)) await this.Navigation.PushModalAsync(new MainPage()); }
public async Task<List<Categoria>> GetCategorias() { try { var dbCat = new Repositorio<Categoria>(); var lista = await dbCat.RetornarTodos(); return lista.OrderBy(x => x.Nome).ToList(); } catch (Exception ex) { Insights.Report(ex); } return new List<Categoria>(); }
public async Task MontaCategoriasFake() { try { var dbCat = new Repositorio<Categoria>(); var lista = await dbCat.RetornarTodos(); this.Categorias = new ObservableCollection<Categoria>(lista.OrderBy(x => x.Nome)); } catch (Exception ex) { Insights.Report(ex); } }
protected async override void OnAppearing() { base.OnAppearing(); var control = new Repositorio<ControleSession>(); var isLogado = (await control.RetornarTodos()).First(); if (!isLogado.ViuTutorial) { if (Device.OS == TargetPlatform.Android) await this.Navigation.PushModalAsync(new TutorialPage_Android()); else await this.Navigation.PushModalAsync(new TutorialPage_iOS()); } }
protected async override void OnAppearing() { base.OnAppearing(); Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Saindo..."); var dbControlSession = new Repositorio<ControleSession>(); var isLogado = (await dbControlSession.RetornarTodos()).FirstOrDefault(); if (isLogado != null) { isLogado.Logado = false; Acr.UserDialogs.UserDialogs.Instance.HideLoading(); this.Navigation.PushModalAsync(new Login_v2Page()); } }
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<Usuario> AtualizarCategoriasFB(Usuario user) { using (var client = CallAPI.RetornaClientHttp()) { var _json = this.MontaUsuarioMobile2(user); var usuarioJSON = JsonConvert.SerializeObject(_json); response = await client.PostAsJsonAsync(Constants.uriAtualizaCategoriasFB, usuarioJSON); if (response.IsSuccessStatusCode) { var json = await response.Content.ReadAsStringAsync(); var usuario = JsonConvert.DeserializeObject<Usuario>(json); var dbCategoria = new Repositorio<Categoria>(); var cats = string.Empty; foreach (var item in usuario.Categorias) { var cat = await dbCategoria.RetornarPorId(item.Id); cat.UsuarioId = usuario.Id; await dbCategoria.Atualizar(cat); cats += item.Id.ToString() + ';'; } cats = cats.TrimEnd(';'); usuario.CategoriaMobileSelection = cats; var dbFacebook = new Repositorio<FacebookInfos>(); var _token = (await dbFacebook.RetornarTodos()).FirstOrDefault(); if (_token != null) { usuario.FacebookID = _token.user_id; usuario.FacebookToken = _token.access_token; } var dbUsuario = new Repositorio<Usuario>(); await dbUsuario.Atualizar(usuario); return (await dbUsuario.RetornarTodos()).First(); } throw new ArgumentException("Erro Geral"); } }
protected async override void OnAppearing() { base.OnAppearing(); var dbControlaSession = new Repositorio<ControleSession>(); var _control = (await dbControlaSession.RetornarTodos()).First(); _control.ViuTutorial = true; await dbControlaSession.Atualizar(_control); // Device.StartTimer(TimeSpan.FromSeconds(10), (() => // { // this.Navigation.PushModalAsync(new NavigationPage(new MenuPrincipalPage())); // return false; // } // // )); }
public async Task<bool> GravarResposta(Resposta resposta) { if (resposta != null) { var db = new Repositorio<Resposta>(); if (await db.Inserir(resposta)) { var dbEnquete = new Repositorio<Enquete>(); var enquete = (await dbEnquete.RetornarTodos()).First(e => e.PerguntaId == resposta.PerguntaId); enquete.EnqueteRespondida = true; return await dbEnquete.Atualizar(enquete); } return await Task.FromResult<bool>(false); } return await Task.FromResult<bool>(false); }
protected override void OnStart() { try { Action<Task> capturaPosicaoPeriodica = null; capturaPosicaoPeriodica = _task => { var locator = CrossGeolocator.Current; var dbUsuario = new Repositorio<Usuario>(); var usuarioLogado = (dbUsuario.RetornarTodos()).Result.FirstOrDefault(); if (usuarioLogado != null) { if (locator.IsGeolocationAvailable && locator.IsGeolocationEnabled) { locator.DesiredAccuracy = 50; var pos = locator.GetPositionAsync(10000); pos.Wait(); var geo = new Geolocalizacao { Latitude = pos.Result.Latitude, Longitude = pos.Result.Longitude, UsuarioId = usuarioLogado.Id, }; var service = App.Container.Resolve<GeolocalizacaoViewModel>(); service.GravaGeolocalizacao(geo).Wait(); Task.Delay(10000, CancellationToken.None).ContinueWith(capturaPosicaoPeriodica, CancellationToken.None); Debug.WriteLine(String.Format("Posição é: LAT: {0} e LONG {1} - Data: {2}", geo.Latitude, geo.Longitude, DateTime.Now.ToString())); } } }; Task.Delay(10000, CancellationToken.None).ContinueWith(capturaPosicaoPeriodica, CancellationToken.None); } catch (Exception ex) { Insights.Report(ex); } }
public async Task CarregarMensagem(int enqueteId) { var dbEnquete = new Repositorio<Enquete>(); var imagemNome = (await dbEnquete.RetornarTodos()).First(p => p.Tipo == EnumTipoEnquete.Mensagem && p.Id == enqueteId); await this.Navigation.PushAsync(new ExibirMensagemPage(enqueteId, imagemNome.Imagem, imagemNome.UrlVideo, imagemNome.TemVoucher)); }
public async Task CarregarRespostas(int enqueteId) { try { var dbEnquete = new Repositorio<Enquete>(); var enquete = (await dbEnquete.RetornarTodos()).First(x => x.Id == enqueteId); var ehInteresse = enquete.Tipo == EnumTipoEnquete.Interesse; if (enquete.EnqueteRespondida) await this.Navigation.PushAsync(new PerguntaRespondidaPage(enquete.Pergunta.Id, enquete.Imagem, enquete.UrlVideo, ehInteresse, enquete.Id, enquete.UsuarioCriador, enquete.TemVoucher)); else await this.Navigation.PushAsync(new PerguntaPage(enquete.Pergunta.Id, enquete.Imagem, enquete.UrlVideo, enquete.TemVoucher, ehInteresse, enquete.Id, enquete.UsuarioCriador)); } catch (Exception ex) { Insights.Report(ex); } }
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"); } }
private async Task IsLogado() { try { var dbSession = new Repositorio<ControleSession>(); var isLogado = await dbSession.RetornarTodos(); if (isLogado != null && isLogado.Any(c => c.Logado)) { App.Current.Properties["isLogado"] = true; // if (!isLogado.FirstOrDefault().ViuTutorial) // { // if (Device.OS == TargetPlatform.Android) // await this.Navigation.PushModalAsync(new TutorialPage_Android()); // else // await this.Navigation.PushModalAsync(new TutorialPage_iOS()); // } // else await this.Navigation.PushModalAsync(new MainPage()); } else { App.Current.Properties["isLogado"] = false; await this.Navigation.PushModalAsync(new Login_v2Page(), false); } } catch (Exception ex) { Insights.Report(ex); } }
public async Task<bool> AtualizarCadastro(Usuario user, INavigation nav, DateTime? dataNascimento, int? sexo) { var categorias = string.Empty; if (Device.OS == TargetPlatform.iOS) { if (App.Current.Properties.ContainsKey("Categorias_iOS")) { var c = (ICollection<Categoria>)App.Current.Properties["Categorias_iOS"]; if (c != null && c.Any()) { foreach (var item in c) { categorias += item.Id.ToString() + ';'; } } } } else if (this.Categorias != null & this.Categorias.Any()) { foreach (var item in this.Categorias) { categorias += item.Id.ToString() + ';'; } } categorias = categorias.TrimEnd(new char[]{ ';' }); user.CategoriaMobileSelection = categorias; var dbFacebook = new Repositorio<FacebookInfos>(); var _token = (await dbFacebook.RetornarTodos()).FirstOrDefault(); if (_token != null) { user.FacebookID = _token.user_id; user.FacebookToken = _token.access_token; } user.EmpresaApp = 1; if (dataNascimento.HasValue) user.DataNascimento = dataNascimento; if (sexo != null && sexo > 0) { if ((int)sexo == 1) user.Sexo = EnumSexo.Masculino; else user.Sexo = EnumSexo.Feminino; } var atualizou = await service.AtualizarUsuario(user); if (atualizou) { var dbUsuario = new Repositorio<Usuario>(); await dbUsuario.Atualizar(user); Acr.UserDialogs .UserDialogs .Instance .ShowSuccess("Cadastro Atualizado com sucesso!"); return await Task.FromResult(true); } else { await Acr.UserDialogs .UserDialogs .Instance .AlertAsync("Erro na atualização, tente novamente", AppResources.TituloErro, "OK"); return await Task.FromResult(false); } }
public NovaEnquetePage() { this.BindingContext = model = App.Container.Resolve<NovaEnqueteViewModel>(); MessagingCenter.Subscribe<SelecaoAmigosEnquetePage,ICollection<Amigo>>(this, "gravarAmigos", (sender, arg) => this.model.AdicionarAmigoAoEnvio(arg)); model.ConfiguraNavegacao(this.Navigation); this.Title = "Nova Enquete"; var logo = new Image { Source = ImageSource.FromResource(RetornaCaminhoImagem.GetImagemCaminho("logo_mini.png")), }; var btnSelecionarAmigos = new Button { Text = AppResources.TextoBotaoSelecionarAmigos, Style = Estilos._estiloPadraoButtonFonteMenor, HorizontalOptions = LayoutOptions.End }; btnSelecionarAmigos.Clicked += async (sender, e) => { var dbAmigos = new Repositorio<Amigo>(); // // for (int i = 0; i < 5; i++) // { // dbAmigos.Inserir(new Amigo // { // FacebookID = "1", // Nome = "Amigo Teste", // UsuarioId = 99 // }); // } var _amigos = await dbAmigos.RetornarTodos(); if (_amigos.Any(c => c.FacebookID == "1" && c.UsuarioId == 99)) { foreach (var i in _amigos.Where(c=>c.FacebookID == "1" && c.UsuarioId == 99)) { _amigos.Remove(i); } } if (_amigos == null || (_amigos != null && _amigos.Count == 0)) { await Acr.UserDialogs.UserDialogs.Instance.AlertAsync( "Você não possui amigos importados ainda", "Aviso", "OK"); } else await this.Navigation.PushModalAsync(new SelecaoAmigosEnquetePage()); }; enqueteContent = new CriaNovaEnqueteView(); var stackResposta = new StackLayout { HeightRequest = HeightRequest = Acr.DeviceInfo.DeviceInfo.Hardware.ScreenHeight * 2, VerticalOptions = LayoutOptions.FillAndExpand, Orientation = StackOrientation.Vertical, Children = { enqueteContent } }; var enqueteScroll = new ScrollView { Orientation = ScrollOrientation.Vertical, Content = stackResposta }; var btnAdicionarResposta = new Button { Style = Estilos._estiloPadraoButtonFonteMenor, Text = AppResources.TextoBotaoAdicionarResposta, VerticalOptions = LayoutOptions.End }; btnAdicionarResposta.Clicked += (sender, e) => { var entResposta = new Entry { Placeholder = AppResources.TextoPlaceholderTituloNaRespostaEnquete, WidthRequest = 100 }; var apagar = new Image(); apagar.Source = ImageSource.FromResource(RetornaCaminhoImagem.GetImagemCaminho("Cancel-32.png")); apagar.HorizontalOptions = LayoutOptions.End; apagar.ClassId = Guid.NewGuid().ToString(); var grid = new Grid { ColumnDefinitions = { new ColumnDefinition{ Width = new GridLength(2, GridUnitType.Star) }, new ColumnDefinition{ Width = GridLength.Auto } } }; grid.Children.Add(entResposta, 0, 0); grid.Children.Add(apagar, 1, 0); grid.ClassId = apagar.ClassId; var apagar_click = new TapGestureRecognizer(); apagar_click.Tapped += (s, elemnt) => { foreach (var item in this.enqueteContent.RespostasStack.Children) { if ((item).ClassId == ((Image)s).ClassId) { this.enqueteContent.RespostasStack.Children.Remove(item); break; } } }; apagar.GestureRecognizers.Add(apagar_click); this.enqueteContent.RespostasStack.Children.Add(grid); }; var btnFinalizarEnquete = new Button { Style = Estilos._estiloPadraoButtonFonteMenor, Text = AppResources.TextoBotaoFinalizarEnquete, VerticalOptions = LayoutOptions.End }; btnFinalizarEnquete.Clicked += async (sender, e) => { var listaRespostas = new List<Resposta>(); foreach (var item in enqueteContent.RespostasStack.Children) { if (item.GetType() == typeof(Entry)) { var textoResposta = ((Entry)item).Text; listaRespostas.Add(new Resposta{ Respondida = false, TextoResposta = textoResposta }); } else if (item.GetType() == typeof(Grid)) { foreach (var row in ((Grid)item).Children.Where(g=>g.GetType() == typeof(Entry))) { var texto = ((Entry)row).Text; listaRespostas.Add(new Resposta{ Respondida = false, TextoResposta = texto }); } } } model.AdicionaRespostaParaColecao(listaRespostas); await model.SalvaEnquete(); }; var gridFooter = new Grid { RowDefinitions = { new RowDefinition { Height = GridLength.Auto } }, ColumnDefinitions = { new ColumnDefinition { Width = new GridLength(0.5, GridUnitType.Star) }, new ColumnDefinition { Width = new GridLength(0.5, GridUnitType.Star) } } }; gridFooter.Children.Add(btnAdicionarResposta, 0, 0); gridFooter.Children.Add(btnFinalizarEnquete, 1, 0); var gridHeader = new Grid { RowDefinitions = { new RowDefinition{ Height = GridLength.Auto } }, ColumnDefinitions = { new ColumnDefinition { Width = GridLength.Auto }, new ColumnDefinition { Width = new GridLength(0.20, GridUnitType.Star) }, new ColumnDefinition { Width = new GridLength(0.15, GridUnitType.Star) } } }; gridHeader.Children.Add(logo, 1, 0); gridHeader.Children.Add(btnSelecionarAmigos, 2, 0); var mainLayout = new StackLayout { VerticalOptions = LayoutOptions.FillAndExpand, Spacing = Device.OnPlatform(15, 10, 0), Orientation = StackOrientation.Vertical, HorizontalOptions = LayoutOptions.FillAndExpand, Padding = new Thickness(5, Device.OnPlatform(20, 10, 0), 5, 5), Children = { gridHeader, enqueteScroll, gridFooter } }; this.Content = mainLayout; }
public async Task<bool> FazerLogin(string email, string senha) { using (var client = CallAPI.RetornaClientHttp()) { response = await client.GetAsync(string.Format("{0}{1}/{2}", Constants.uriAutenticar, email, senha)); if (response.IsSuccessStatusCode) { var json = await response.Content.ReadAsStringAsync(); var usuario = JsonConvert.DeserializeObject<Usuario>(json); var dbCategoria = new Repositorio<Categoria>(); var cats = string.Empty; foreach (var item in usuario.Categorias) { var cat = await dbCategoria.RetornarPorId(item.Id); cat.UsuarioId = usuario.Id; await dbCategoria.Atualizar(cat); cats += item.Id.ToString() + ';'; } cats = cats.TrimEnd(';'); usuario.CategoriaMobileSelection = cats; var dbUsuario = new Repositorio<Usuario>(); dbUsuario.Inserir(usuario); App.Current.Properties["UsuarioLogado"] = (await dbUsuario.RetornarTodos()).FirstOrDefault(); return await Task.FromResult(true); } } await Acr.UserDialogs.UserDialogs.Instance.AlertAsync("Dados inválidos"); return await Task.FromResult(false); }
public async Task<bool> FazerCadastro(string Nome) { var dbFacebook = new Repositorio<FacebookInfos>(); var _token = (await dbFacebook.RetornarTodos()).FirstOrDefault(); if (_token != null) { this.Usuario.FacebookID = _token.user_id; this.Usuario.FacebookToken = _token.access_token; } this.Usuario.EmpresaApp = 1; this.Usuario.Nome = Nome; var cadastrou = await this.service.CadastraNovoUsuario(this.Usuario, true); if (cadastrou != null) { if (_token != null) { cadastrou.FacebookID = _token.user_id; cadastrou.FacebookToken = _token.access_token; } var dbUsuario = new Repositorio<Usuario>(); await dbUsuario.Inserir(cadastrou); return await Task.FromResult(true); } return await Task.FromResult(false); }
public async Task<Usuario> RetornarUsuario() { try { var dbUsuario = new Repositorio<Usuario>(); var temRegistro = await dbUsuario.ExisteRegistro(); if (temRegistro) { string c = (await dbUsuario.RetornarTodos()).FirstOrDefault().CategoriaMobileSelection; if (!String.IsNullOrEmpty(c)) { this.Categorias = new List<Categoria>(); foreach (var item in c.Split(';')) { var dbCategoria = new Repositorio<Categoria>(); var cat = await dbCategoria.RetornarPorId(Convert.ToInt32(item)); this.Categorias.Add(cat); } } } return temRegistro ? (await dbUsuario.RetornarTodos()).FirstOrDefault() : null; } catch (Exception ex) { Insights.Report(ex); return null; } }
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<string> RetornaImagemPerguntaDaEnquete(int perguntaId) { var dbEnquete = new Repositorio<Enquete>(); return (await dbEnquete.RetornarTodos()).First(e => e.PerguntaId == perguntaId).Imagem; }
public async Task SalvaEnquete() { var confirmConfig = new Acr.UserDialogs.ConfirmConfig(); confirmConfig.CancelText = "Cancelar"; confirmConfig.OkText = "Finalizar"; confirmConfig.Message = "Tem certeza de que deseja criar esta enquete?"; if (await Acr.UserDialogs.UserDialogs.Instance.ConfirmAsync(confirmConfig)) { try { this.Pergunta.Respostas = new List<Resposta>(); this.Pergunta.Respostas = this.Respostas; this.Enquete.Pergunta = new Pergunta(); this.Enquete.Pergunta = this.Pergunta; this.Enquete.Tipo = EnumTipoEnquete.Interesse; this.Enquete.Titulo = this.Pergunta.TextoPergunta; this.Enquete.Status = EnumStatusEnquete.Publicada; var dbUsuario = new Repositorio<Usuario>(); var usuarioLogado = (await dbUsuario.RetornarTodos()).First(); this.Enquete.UsuarioId = usuarioLogado.Id; this.Enquete.ServerEnqueteId = -1; this.Enquete.propria = true; this.Enquete.AtivaNoFront = true; List<Resposta> gravou = new List<Resposta>(); var db = new Repositorio<Enquete>(); Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Enviando..."); if (await db.Inserir(this.Enquete)) { var result = await this.service.CadastrarNovaEnquete(this.Enquete); if (result != null) { try { // Atualizando dados locais com o ID da pergunta no servidor var dbEnquete = new Repositorio<Enquete>(); this.Enquete.PerguntaServerId = result.PerguntaId; this.Enquete.Pergunta.PerguntaServerId = result.PerguntaId; this.Enquete.ServerEnqueteId = result.EnqueteId; foreach (var item in Respostas) { item.PerguntaServerId = result.PerguntaId; } //await dbEnquete.Atualizar(Enquete); // Fim da Atualização gravou = await this.service.CadastrarRespostasDaPergunta(this.Pergunta.Respostas); var dbResposta = new Repositorio<Resposta>(); if (gravou != null && gravou.Any()) { foreach (var resp in gravou) { var _r = this.Enquete.Pergunta.Respostas.First(x => x.PerguntaServerId == resp.PerguntaServerId && x.TextoResposta == resp.TextoResposta); _r.RespostaServerId = resp.RespostaServerId; _r.PerguntaServerId = resp.PerguntaServerId; await dbResposta.Atualizar(_r); await dbEnquete.Atualizar(Enquete); } } } catch (Exception ex) { Insights.Report(ex); throw ex; } } Acr.UserDialogs.UserDialogs.Instance.HideLoading(); if (gravou != null && gravou.Any()) { await this.Navigation.PushModalAsync(new MainPage()); } else await Acr.UserDialogs.UserDialogs.Instance.AlertAsync(String.Empty, AppResources.TextoMsgCadastroErroEnquete, "OK"); } else await Acr.UserDialogs.UserDialogs.Instance.AlertAsync(String.Empty, AppResources.TextoMsgCadastroErroEnquete, "OK"); } catch (Exception ex) { Insights.Report(ex); throw ex; } } }
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); } }
/* var _sexo = sexoPicker.SelectedIndex; var _nascimento = nascimentoPicker.Date; var _email = entEmail.Text; var _nome = entNome.Text; var _ddd = entDDD.Text; var _tel = entTelefone.Text; var _municipio = entMunicipio.Text; */ public async Task EfetuarCadastro(int? sexo, DateTime? nascimento, string email, string nome, string ddd, string tel, string municipio, string senha) { Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Enviando..."); if (this.Usuario.Categorias == null || !this.Usuario.Categorias.Any()) { Acr.UserDialogs.UserDialogs.Instance.HideLoading(); await Acr.UserDialogs.UserDialogs.Instance.AlertAsync("Selecione ao menos uma categoria, clique no botão 'Categorias de Interesse'"); return; } else { try { var db = new Repositorio<Usuario>(); Usuario usuario = new Usuario(); if (this.Usuario.Categorias == null || !this.Usuario.Categorias.Any()) { Acr.UserDialogs.UserDialogs.Instance.HideLoading(); await Acr.UserDialogs.UserDialogs.Instance.AlertAsync("Selecione ao menos uma categoria, clique no botão 'Selecionar Categoria'"); return; } var categorias = string.Empty; foreach (var categoria in this.Usuario.Categorias) { categorias += categoria.Id.ToString() + ';'; } categorias = categorias.TrimEnd(';'); usuario.CategoriaMobileSelection = categorias; var dbFacebook = new Repositorio<FacebookInfos>(); var _token = (await dbFacebook.RetornarTodos()).FirstOrDefault(); if (_token != null) { usuario.FacebookID = _token.user_id; usuario.FacebookToken = _token.access_token; } usuario.EmpresaApp = 1; usuario.Nome = nome; usuario.DataNascimento = nascimento; usuario.DDD = ddd; usuario.Telefone = tel; usuario.Email = email; usuario.Municipio = municipio; usuario.Senha = senha; //usuario.Categorias = this.Usuario.Categorias; if (sexo == 1) usuario.Sexo = EnumSexo.Masculino; else usuario.Sexo = EnumSexo.Feminino; var cadastrou = await this.service.CadastraNovoUsuario(usuario); try { if (cadastrou != null) { this.Logar = new Action(async () => { Acr.UserDialogs.UserDialogs.Instance.HideLoading(); var autenticado = await this.service.FazerLogin(cadastrou.Email, cadastrou.Senha); if (autenticado) { var dbUsuario = new Repositorio<Usuario>(); var temUsuario = (await dbUsuario.RetornarTodos()).FirstOrDefault(); if (temUsuario != null) await dbUsuario.Inserir(cadastrou); var dbSession = new Repositorio<ControleSession>(); await dbSession.Inserir(new ControleSession { Logado = true }); if (temUsuario != null) await this.Navigation.PushModalAsync(new MainPage()); else await Acr.UserDialogs.UserDialogs.Instance.AlertAsync("Erro na gravação do usuário"); } else Acr.UserDialogs.UserDialogs.Instance.Alert("Dados incorretos!", "Erro", "OK"); }); await db.Inserir(cadastrou); foreach (var categoria in cadastrou.CategoriaMobileSelection.Split(';')) { var dbUsuarioCategoria = new Repositorio<UsuarioCategoria>(); await dbUsuarioCategoria.Inserir(new UsuarioCategoria{ CategoriaId = Convert.ToInt32(categoria) }); } Acr.UserDialogs.UserDialogs.Instance.HideLoading(); this.Logar.Invoke(); } else { Acr.UserDialogs.UserDialogs.Instance.HideLoading(); await Acr.UserDialogs .UserDialogs .Instance .AlertAsync(AppResources.MsgErroCadastroUsuario, AppResources.TituloErro, "OK"); } } catch (NullReferenceException) { Acr.UserDialogs.UserDialogs.Instance.HideLoading(); await Acr.UserDialogs .UserDialogs .Instance .AlertAsync(AppResources.MsgErroCadastroUsuarioCamposEmBranco, AppResources.TituloErro, "OK"); } } catch (Exception ex) { Insights.Report(ex); } } }
public async Task<bool> FazCadastroCategoriasFB(List<Categoria> categorias, string email) { var dbUsuario = new Repositorio<Usuario>(); var query = await dbUsuario.RetornarTodos(); var _usuario = query.First(); var cats = string.Empty; foreach (var categoria in categorias) { cats += categoria.Id.ToString() + ';'; } cats = cats.TrimEnd(';'); _usuario.CategoriaMobileSelection = cats; if (!String.IsNullOrEmpty(email)) _usuario.Email = email; var result = await this.service.AtualizarCategoriasFB(_usuario); if (result != null) { return await Task.FromResult(true); } return await Task.FromResult(false); }