public static async Task gerarMeuPedido() { UserDialogs.Instance.ShowLoading("Carregando..."); try { var regraUsuario = UsuarioFactory.create(); var usuarioAtual = regraUsuario.pegarAtual(); var regraPedido = PedidoFactory.create(); var pedidos = await regraPedido.listar(usuarioAtual.Id); var pedidoListaPage = new PedidoListaPage { Title = "Meus Pedidos", Pedidos = pedidos }; pedidoListaPage.AoSelecionar += (sender, pedido) => { var pedidoPage = new PedidoPage { Pedido = pedido }; ((Page)sender).Navigation.PushAsync(pedidoPage); }; UserDialogs.Instance.HideLoading(); //((RootPage)App.Current.MainPage).PaginaAtual = pedidoListaPage; ((RootPage)App.Current.MainPage).PushAsync(pedidoListaPage); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); } }
protected async virtual Task atualizandoDado() { var regraUsuario = UsuarioFactory.create(); var usuarioAtual = regraUsuario.pegarAtual(); if (usuarioAtual == null) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert("Não está logado.", "Erro", "Fechar"); return; } var usuario = await regraUsuario.pegar(usuarioAtual.Id); regraUsuario.gravarAtual(usuario); _usuarioPage.Usuario = usuario; var enderecos = new List <EnderecoInfo>(); foreach (var endereco in usuario.Enderecos) { enderecos.Add(endereco); } _enderecoListaPage.Enderecos = enderecos; var regraCartao = CartaoFactory.create(); var cartoes = await regraCartao.listar(usuario.Id); _cartaoListaPage.Cartoes = cartoes; return; }
protected override async Task executar() { if (_verificando) { return; } _verificando = true; try { var dataAtual = DateTime.Now; if (dataAtual.Subtract(_ultimaExecucao).TotalMilliseconds > DuracaoExecucao) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); if (usuario != null) { var regraMensagem = MensagemFactory.create(); var avisos = await regraMensagem.listarAviso(usuario.Id); foreach (var aviso in avisos) { var rootPage = (RootPage)App.Current.MainPage; //CrossLocalNotifications.Current.Show(rootPage.NomeApp, aviso.Assunto); CrossLocalNotifications.Current.Show(rootPage.NomeApp, aviso.Mensagem); } } _ultimaExecucao = dataAtual; System.Diagnostics.Debug.WriteLine("Verificando avisos: " + dataAtual.ToString("HH:mm:ss")); } } finally { _verificando = false; } return; }
public static PagamentoInfo gerar(PedidoInfo pedido) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var pagamento = new PagamentoInfo { IdUsuario = usuario.Id, Cpf = usuario.CpfCnpj, Cep = pedido.Cep, Logradouro = pedido.Logradouro, Complemento = pedido.Complemento, Numero = pedido.Numero, Bairro = pedido.Bairro, Cidade = pedido.Cidade, Uf = pedido.Uf, Situacao = SituacaoPagamentoEnum.Aberto }; foreach (var item in pedido.Itens) { pagamento.Itens.Add(new PagamentoItemInfo { Descricao = item.Produto.Nome, Quantidade = item.Quantidade, Valor = (item.Produto.ValorPromocao > 0) ? item.Produto.ValorPromocao : item.Produto.Valor }); } return(pagamento); }
public static Usuario getUserById(string user) { MySqlConnection connection = new MySqlConnection(connecString); MySqlCommand command = connection.CreateCommand(); connection.Open(); command.CommandText = "select * from usuarios where userName='******';"; Usuario newUsuario = null; try { MySqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { newUsuario = UsuarioFactory.create(reader); } } catch (Exception e) { string message = e.Message; } return(newUsuario); }
/* * public static Page gerarLogin(Action<UsuarioInfo> aoLogar) * { * var loginPage = new LoginPage * { * Title = "Login" * }; * loginPage.AoLogar += (sender, usuario) => * { * var regraLoja = LojaFactory.create(); * var loja = regraLoja.pegarAtual(); * * if (loja != null) * { * atualizarRootPage(ProdutoUtils.gerarProdutoListaDestaque(), false); * } * else * { * if (usuario.Enderecos.Count > 0) * { * var endereco = usuario.Enderecos[0]; * LojaUtils.gerarLojaLista(endereco); * } * else * { * EnderecoUtils.gerarBuscaPorCep((endereco) => { * LojaUtils.gerarLojaLista(endereco); * }); * } * } * }; * return loginPage; * } */ public static void carregarUsuario(Action <UsuarioInfo> aoSelecionar) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); if (usuario == null || (usuario != null && usuario.Id <= 0)) { var usuarioSelecionaPage = new UsuarioSelecionaPage { Title = "Crie / Use sua conta", Usuario = usuario }; usuarioSelecionaPage.AoSelecionar += (sender, usuarioRetorno) => { if (App.Current.MainPage is RootPage) { ((RootPage)App.Current.MainPage).atualizarMenu(); } aoSelecionar?.Invoke(usuarioRetorno); }; if (App.Current.MainPage is RootPage) { ((RootPage)App.Current.MainPage).PushAsync(usuarioSelecionaPage); } else { App.Current.MainPage = App.gerarRootPage(usuarioSelecionaPage); //App.Current.MainPage = new IconNavigationPage(usuarioSelecionaPage); } } else { aoSelecionar?.Invoke(usuario); } }
private async void creditoOnlineClicked(object sender, EventArgs e) { if (Pagamento == null) { await DisplayAlert("Erro", "Nenhum pagamento informado!", "Fechar"); return; } UserDialogs.Instance.ShowLoading("Carregando..."); try { Pagamento.Tipo = TipoPagamentoEnum.CreditoOnline; var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var regraCartao = CartaoFactory.create(); var cartoes = await regraCartao.listar(usuario.Id); if (cartoes != null && cartoes.Count() > 0) { var cartaoListaPage = new CartaoListaPage() { Title = "Meus Cartões", Pagamento = Pagamento, Cartoes = cartoes }; cartaoListaPage.AoEfetuarPagamento += (s2, pagamento) => { AoEfetuarPagamento?.Invoke(sender, pagamento); }; await Navigation.PushAsync(cartaoListaPage); } else { var cartaoPage = new CartaoPage { Title = "Cartão de Crédito", UsaCredito = true, UsaDebito = false, Pagamento = Pagamento }; cartaoPage.AoEfetuarPagamento += (s2, pagamento) => { AoEfetuarPagamento?.Invoke(sender, pagamento); }; await Navigation.PushAsync(cartaoPage); } UserDialogs.Instance.HideLoading(); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); await DisplayAlert("Erro", erro.Message, "Entendi"); } }
private void inicializarComponente() { _Email = new Entry { Placeholder = "Preencha o seu email.", Keyboard = Keyboard.Email, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill }; _RecuperarSenha = new Button() { Margin = new Thickness(0, 10, 0, 0), Text = "ENVIAR SENHA PARA O EMAIL", VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Style = Estilo.Current[Estilo.BTN_PRINCIPAL] }; _RecuperarSenha.Clicked += async(sender, e) => { if (validaProximo()) { UserDialogs.Instance.ShowLoading("Aguarde..."); if (await UsuarioFactory.create().recuperarSenha(new UsuarioNovaSenhaInfo { Email = _Email.Text })) { UserDialogs.Instance.HideLoading(); //await UserDialogs.Instance.AlertAsync("A senha foi enviada para o seu email", "Sucesso !", "Ok"); await DisplayAlert("Sucesso", "A senha foi enviada para o seu email", "Entendi"); await Navigation.PopToRootAsync(); } else { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert("Ocorreu uma falha ao enviar a senha. Verifique se o email informado está correto.", "Falha", "Ok"); await DisplayAlert("Erro", "Ocorreu uma falha ao enviar a senha. Verifique se o email informado está correto.", "Entendi"); } } }; _ResetarSenha = new Button() { Margin = new Thickness(0, 10, 0, 0), Text = "ALTERAR A SENHA", VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Style = Estilo.Current[Estilo.BTN_PADRAO] }; _ResetarSenha.Clicked += (sender, e) => { if (validaProximo()) { Navigation.PushAsync(new ResetaSenhaPage(_Email.Text)); } }; }
private void inicializarComponente() { _SenhaAntiga = new Entry { Placeholder = "Senha antiga", VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, IsPassword = true }; _NovaSenha = new Entry { Placeholder = "Nova senha", VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, IsPassword = true }; _ConfirmaNovaSenha = new Entry { Placeholder = "Repita a nova senha", VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, IsPassword = true }; _ResetaSenha = new Button() { Margin = new Thickness(0, 10, 0, 0), Text = "RESETAR MINHA SENHA", VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Style = Estilo.Current[Estilo.BTN_PRINCIPAL] }; _ResetaSenha.Clicked += async(sender, e) => { if (validaResete()) { UserDialogs.Instance.ShowLoading("Aguarde..."); if (await UsuarioFactory.create().resetarSenha(new UsuarioNovaSenhaInfo { Email = _Email, Senha = _NovaSenha.Text, SenhaAntiga = _SenhaAntiga.Text })) { UserDialogs.Instance.HideLoading(); //await UserDialogs.Instance.AlertAsync("Sua senha foi resetada", "Sucesso !", "Ok"); await DisplayAlert("Sucesso", "Sua senha foi resetada", "Fechar"); await Navigation.PopToRootAsync(); } else { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert("Ocorreu uma falha ao resetar a senha. Tente novamente mais tarde.", "Falha", "Ok"); await DisplayAlert("Erro", "Ocorreu uma falha ao resetar a senha. Tente novamente mais tarde.", "Entendi"); } } }; }
public static EnderecoListaPage gerarEnderecoLista(Action <EnderecoInfo> aoSelecionar) { var enderecoListaPage = new EnderecoListaPage { Title = "Endereços" }; enderecoListaPage.AoAtualizar += async(sender, enderecos) => { UserDialogs.Instance.ShowLoading("Carregando..."); try { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); usuario.Enderecos.Clear(); foreach (var endereco in enderecos) { usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco)); } int idUsuario = usuario.Id; if (idUsuario > 0) { await regraUsuario.alterar(usuario); } else { idUsuario = await regraUsuario.inserir(usuario); } var usuarioRemoto = await regraUsuario.pegar(idUsuario); regraUsuario.gravarAtual(usuarioRemoto); var usuarioEnderecos = new List <EnderecoInfo>(); foreach (var endereco in usuarioRemoto.Enderecos) { usuarioEnderecos.Add(endereco); } ((EnderecoListaPage)sender).Enderecos = usuarioEnderecos; UserDialogs.Instance.HideLoading(); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); } }; if (aoSelecionar != null) { enderecoListaPage.AoSelecionar += (sender, endereco) => { aoSelecionar(endereco); }; } return(enderecoListaPage); }
private async void boletoClicked(object sender, EventArgs e) { if (Pagamento == null) { await DisplayAlert("Erro", "Nenhum pagamento informado!", "Fechar"); return; } Pagamento.Tipo = TipoPagamentoEnum.Boleto; if (Pagamento.TemEndereco) { gerarBoleto(Pagamento); } else { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); if (usuario.Enderecos.Count == 1) { preencherEndereco(Pagamento, usuario.Enderecos[0]); gerarBoleto(Pagamento); } else if (usuario.Enderecos.Count > 0) { var enderecoListaPage = EnderecoUtils.gerarEnderecoLista((endereco) => { preencherEndereco(Pagamento, endereco); gerarBoleto(Pagamento); }); var enderecos = new List <EnderecoInfo>(); foreach (var endereco in usuario.Enderecos) { enderecos.Add(endereco); } enderecoListaPage.Enderecos = enderecos; enderecoListaPage.Title = "Endereço de Cobrança"; await Navigation.PushAsync(enderecoListaPage); } else { var cepPage = EnderecoUtils.gerarBuscaPorCep((endereco) => { usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco)); var regraLogin = UsuarioFactory.create(); regraLogin.gravarAtual(usuario); preencherEndereco(Pagamento, endereco); gerarBoleto(Pagamento); }); await Navigation.PushAsync(cepPage); } } }
protected override async void OnAppearing() { base.OnAppearing(); if (_Inicio) { _Inicio = false; UserDialogs.Instance.ShowLoading("carregando..."); _EnderecoList.ItemsSource = UsuarioFactory.create().pegarAtual().Enderecos; UserDialogs.Instance.HideLoading(); } }
protected async override Task atualizandoDado() { await base.atualizandoDado(); var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var regraPedido = PedidoFactory.create(); _avaliacaoPage.Pedidos = await regraPedido.listarAvaliacao(0, usuario.Id); }
private void _avaliarClicked(object sender, EventArgs e) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var descricao = ""; var frete = this.Frete; if (frete.IdUsuario == usuario.Id) { descricao = "Como você avalia o motorista?"; } else if (frete.IdMotorista == usuario.Id) { descricao = "Como você avalia o cliente?"; } var avaliePage = new AvaliePage { Descricao = descricao }; avaliePage.AoAvaliar += async(s1, nota) => { UserDialogs.Instance.ShowLoading("carregando..."); try { var regraFrete = FreteFactory.create(); frete = await regraFrete.pegar(this.Frete.Id); if (frete.IdUsuario == usuario.Id) { frete.NotaMotorista = nota; } else if (frete.IdMotorista == usuario.Id) { frete.NotaFrete = nota; } await regraFrete.alterar(frete); UserDialogs.Instance.HideLoading(); await Navigation.PopAsync(); AoAtualizarTela?.Invoke(this, frete); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi"); } }; Navigation.PushAsync(avaliePage); }
private async void enviarPagamento() { if (!validarCampo()) { return; } UserDialogs.Instance.ShowLoading("Enviando..."); try { var regraPagamento = PagamentoFactory.create(); var regraCartao = CartaoFactory.create(); var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); Pagamento.Bandeira = regraPagamento.pegarBandeiraPorNumeroCartao(_NumeroCartaoEntry.Text); Pagamento.DataExpiracao = regraCartao.pegarDataExpiracao((string)_ValidadeCartaoPicker.SelectedItem); Pagamento.IdUsuario = usuario.Id; Pagamento.NomeCartao = _NomeEntry.Text; Pagamento.NumeroCartao = _NumeroCartaoEntry.TextOnlyNumber; Pagamento.Tipo = _TipoSelecionado; Pagamento.CVV = _CVCartaoEntry.Text; var retorno = await regraPagamento.pagar(Pagamento); if (retorno.Situacao == SituacaoPagamentoEnum.Pago || retorno.Situacao == SituacaoPagamentoEnum.AguardandoPagamento) { var pagamento = await regraPagamento.pegar(retorno.IdPagamento); if (retorno.Situacao == SituacaoPagamentoEnum.Pago) { var mensagem = "Foram debitados R$ {0} do seu cartão de crédito."; var rootPage = (RootPage)App.Current.MainPage; CrossLocalNotifications.Current.Show(rootPage.NomeApp, string.Format(mensagem, pagamento.ValorTotalStr)); } UserDialogs.Instance.HideLoading(); AoEfetuarPagamento?.Invoke(this, pagamento); } else { UserDialogs.Instance.HideLoading(); await DisplayAlert("Erro", retorno.Mensagem, "Entendi"); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); await DisplayAlert("Erro", erro.Message, "Entendi"); } }
public static Page gerarCadastro(Action <UsuarioInfo> aoCadastrar, bool usaRoot = true) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var usuarioCadastroPage = UsuarioFormPageFactory.create(); usuarioCadastroPage.Title = "Cadastre-se"; usuarioCadastroPage.Gravar = true; usuarioCadastroPage.Usuario = usuario; usuarioCadastroPage.AoCadastrar += (sender, e) => { aoCadastrar?.Invoke(e); //var destaquePage = ProdutoUtils.gerarProdutoListaDestaque(); //pushAsync(destaquePage, usaRoot); }; return(usuarioCadastroPage); }
private void acompanharClicked(object sender, EventArgs e) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var regraMotorista = MotoristaFactory.create(); var motorista = regraMotorista.pegarAtual(); if (motorista != null) { CaronaUtils.acompanharComoMotorista(Frete); } else { CaronaUtils.acompanharComoCliente(Frete); } }
protected virtual async Task executarLogin() { var regraUsuario = UsuarioFactory.create(); var id_usuario = await regraUsuario.logar(Email, Senha); var usuario = await regraUsuario.pegar(id_usuario); if (usuario != null) { regraUsuario.gravarAtual(usuario); executarEventoLogar(usuario); } else { string mensagem = string.Format("Nenhum usuário encontrado com o ID {0}.", id_usuario); await DisplayAlert("Aviso", mensagem, "Fechar"); } }
private async Task <UsuarioInfo> enviarUsuario(UsuarioInfo usuario) { var regraUsuario = UsuarioFactory.create(); UserDialogs.Instance.ShowLoading("Enviando..."); try { var id_usuario = 0; if (usuario.Id > 0) { await regraUsuario.alterar(usuario); id_usuario = usuario.Id; } else { id_usuario = await regraUsuario.inserir(usuario); } var usuarioCadastrado = await regraUsuario.pegar(id_usuario); UserDialogs.Instance.HideLoading(); if (usuarioCadastrado != null) { regraUsuario.gravarAtual(usuarioCadastrado); return(usuarioCadastrado); } else { string mensagem = string.Format("Nenhum usuário encontrado com o ID {0}.", id_usuario); await DisplayAlert("Aviso", mensagem, "Fechar"); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); await DisplayAlert("Erro", erro.Message, "Entendi"); } return(null); }
public static PedidoInfo gerar(IList <ProdutoInfo> produtos, EnderecoInfo endereco = null) { var regraUsuario = UsuarioFactory.create(); var regraLoja = LojaFactory.create(); var usuario = regraUsuario.pegarAtual(); var loja = regraLoja.pegarAtual(); var pedido = new PedidoInfo { IdLoja = loja.Id, IdUsuario = (usuario != null) ? usuario.Id : 0, ValorFrete = 0, TrocoPara = 0, FormaPagamento = FormaPagamentoEnum.Dinheiro, Situacao = Model.SituacaoEnum.AguardandoPagamento }; if (endereco != null) { pedido.Cep = endereco.Cep; pedido.Logradouro = endereco.Logradouro; pedido.Complemento = endereco.Complemento; pedido.Numero = endereco.Numero; pedido.Bairro = endereco.Bairro; pedido.Cidade = endereco.Cidade; pedido.Uf = endereco.Uf; pedido.Latitude = endereco.Latitude; pedido.Longitude = endereco.Longitude; } foreach (var produto in produtos) { pedido.Itens.Add(new PedidoItemInfo { IdProduto = produto.Id, Produto = produto, Quantidade = produto.QuantidadeCarrinho }); } return(pedido); }
public static async void listarMeuFreteComoCliente() { UserDialogs.Instance.ShowLoading("carregando..."); try { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var regraFrete = FreteFactory.create(); var fretes = await regraFrete.listar(usuario.Id); var freteListaPage = new FreteListaPage { Title = "Meus atendimentos", Fretes = fretes, FiltroBotao = false, NovoBotao = false }; UserDialogs.Instance.HideLoading(); ((RootPage)App.Current.MainPage).PushAsync(freteListaPage); } catch (Exception e) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(e.Message, "Erro", "Entendi"); } }
public static IList <MenuItemInfo> gerarMenu() { var regraUsuario = UsuarioFactory.create(); var regraLoja = LojaFactory.create(); var loja = regraLoja.pegarAtual(); var usuario = regraUsuario.pegarAtual(); bool estaLogado = usuario != null && usuario.Id > 0; var menus = new List <MenuItemInfo>(); //if (regraLoja.podeMudarLoja()) //{ menus.Add(new MenuItemInfo { IconeFA = "fa-home", Titulo = "Lojas", aoClicar = (sender, e) => { LojaUtils.inicializarLojaLista(); //((RootPage)Current.MainPage).PaginaAtual = lojaPage; } }); /* * menus.Add(new MenuItemInfo * { * IconeFA = "fa-home", * Titulo = "Seguimentos", * aoClicar = async (sender, e) => * { * var telaInicialPage = await LojaUtils.gerarTelaInicial(); * ((RootPage)Current.MainPage).PaginaAtual = telaInicialPage; * } * }); */ //} if (loja != null) { menus.Add(new MenuItemInfo { IconeFA = "fa-bars", Titulo = "Categorias", aoClicar = (sender, e) => { var categoriaPage = CategoriaPageFactory.create(); categoriaPage.BannerVisivel = BannerUtils.Ativo; categoriaPage.Title = "Categorias"; ((RootPage)Current.MainPage).PaginaAtual = categoriaPage; } }); menus.Add(new MenuItemInfo { IconeFA = "fa-shopping-bag", Titulo = "Lista de Compras", aoClicar = (sender, e) => { var listaCompraPage = new ListaCompraPage { Title = "Lista de Compras" }; ((RootPage)Current.MainPage).PushAsync(listaCompraPage); } }); menus.Add(new MenuItemInfo { IconeFA = "fa-dollar", Titulo = "Em promoção", aoClicar = (sender, e) => { ((RootPage)Current.MainPage).PaginaAtual = ProdutoUtils.gerarProdutoListaPromocao(); } }); menus.Add(new MenuItemInfo { IconeFA = "fa-search", Titulo = "Buscar", aoClicar = (sender, e) => { ((RootPage)Current.MainPage).PaginaAtual = ProdutoUtils.gerarProdutoBusca(); } }); menus.Add(new MenuItemInfo { IconeFA = "fa-shopping-cart", Titulo = "Meu Carrinho", aoClicar = (sender, e) => { ((RootPage)Current.MainPage).PushAsync(CarrinhoUtils.gerarCarrinhoParaEntrega()); } }); } if (!estaLogado) { menus.Add(new MenuItemInfo { IconeFA = "fa-user", Titulo = "Entrar", aoClicar = (sender, e) => { var loginPage = new LoginPage { Title = "Login" }; loginPage.AoLogar += (s, u) => { var destaquePage = ProdutoUtils.gerarProdutoListaDestaque(); ((RootPage)Current.MainPage).PaginaAtual = destaquePage; }; ((RootPage)Current.MainPage).PushAsync(loginPage); } }); menus.Add(new MenuItemInfo { IconeFA = "fa-user-plus", Titulo = "Criar Conta", aoClicar = (sender, e) => { ((RootPage)Current.MainPage).PaginaAtual = LoginUtils.gerarCadastro((u) => { var destaquePage = ProdutoUtils.gerarProdutoListaDestaque(); ((RootPage)Current.MainPage).PaginaAtual = destaquePage; }); } }); } else { menus.Add(new MenuItemInfo { IconeFA = "fa-user", Titulo = "Alterar Conta", aoClicar = (sender, e) => { ((RootPage)Current.MainPage).PaginaAtual = new PedidoUsuarioGerenciaPage(); } }); menus.Add(new MenuItemInfo { IconeFA = "fa-shopping-basket", Titulo = "Meus Pedidos", aoClicar = async(sender, e) => { await PedidoUtils.gerarMeuPedido(); } }); } menus.Add(new MenuItemInfo { IconeFA = "fa-map-marker", Titulo = "Raio de Busca", aoClicar = (sender, e) => { var raioBuscaPage = new RaioBuscaPage { Title = "Mudar Raio de Busca", BotaoTexto = "Gravar" }; raioBuscaPage.AoAvancar += (s2, e2) => { raioBuscaPage.DisplayAlert("Sucesso", "Raio alterado com sucesso.", "Entendi"); }; ((RootPage)Current.MainPage).PushAsync(raioBuscaPage); } }); menus.Add(new MenuItemInfo { IconeFA = "fa-comment", Titulo = "Fale Conosco", aoClicar = (sender, e) => { Device.OpenUri(new Uri("mailto:[email protected]")); } }); menus.Add(new MenuItemInfo { IconeFA = "fa-remove", Titulo = "Sair", aoClicar = async(sender, e) => { var regraCarrinho = CarrinhoFactory.create(); regraCarrinho.limpar(); var regraLogin = UsuarioFactory.create(); await LojaFactory.create().limparAtual(); await regraLogin.limparAtual(); App.inicilizarApp(); //App.verificarSeguimento(); //Current.MainPage = new NavigationPage(App.gerarBuscaCep()); } }); return(menus); }
private async void CadastroClicked(object sender, EventArgs e) { var usuario = Usuario; var regraUsuario = UsuarioFactory.create(); /* * var antt = usuario.Preferencias.Where(x => x.Chave == "ANTT").FirstOrDefault(); * if (!String.IsNullOrEmpty(_ANTTEntry.Text)) { * if (antt != null) { * antt.Valor = _ANTTEntry.Text; * } * else { * usuario.Preferencias.Add(new UsuarioPreferenciaInfo { * Chave = "ANTT", * Valor = _ANTTEntry.Text * }); * } * } */ if (Gravar) { UserDialogs.Instance.ShowLoading("Enviando..."); } try { if (String.IsNullOrEmpty(_CNHEntry.Text)) { await DisplayAlert("Aviso", "Preencha a CNH", "Fechar"); return; } /* * var regraUsuario = UsuarioFactory.create(); * _usuario.Preferencias.Add(new UsuarioPreferenciaInfo * { * Chave = "ANTT", * Valor = _ANTTEntry.Text * }); */ TipoVeiculoInfo tipo = (TipoVeiculoInfo)_TipoVeiculoEntry.Value; TipoCarroceriaInfo carroceria = (TipoCarroceriaInfo)_CarroceriaEntry.Value; var motorista = new MotoristaInfo { Id = _usuario.Id, IdTipo = tipo.Id, Placa = _PlacaEntry.Text, Veiculo = _VeiculoEntry.Text, ANTT = _ANTTEntry.Text, Situacao = MotoristaSituacaoEnum.Ativo }; if (carroceria != null) { motorista.IdCarroceria = carroceria.Id; } if (Gravar) { await regraUsuario.alterar(_usuario); var regraMotorista = MotoristaFactory.create(); var motorista = new MotoristaInfo { Id = _usuario.Id, Usuario = _usuario, IdTipo = tipo.Id, CNH = _CNHEntry.Text, Placa = _PlacaEntry.Text, ANTT = _ANTTEntry.Text, Situacao = MotoristaSituacaoEnum.Ativo, }; if (carroceria != null) { motorista.IdCarroceria = carroceria.Id; } if (motorista.Id > 0) { await regraMotorista.alterar(motorista); } else { motorista.Id = await regraMotorista.inserir(motorista); } motorista = await regraMotorista.pegar(motorista.Id); /* * var motoristaAtual = await regraMotorista.pegar(_usuario.Id); * if (motoristaAtual != null) * { * await regraMotorista.alterar(motorista); * } * else * { * await regraMotorista.inserir(motorista); * } */ //var usuarioCadastrado = await regraUsuario.pegar(_usuario.Id); //motorista = await regraMotorista.pegar(_usuario.Id); var regraUsuario = UsuarioFactory.create(); regraUsuario.gravarAtual(motorista.Usuario); regraMotorista.gravarAtual(motorista); UserDialogs.Instance.HideLoading(); AoCompletar?.Invoke(this, motoristaCadastrado); } else { //UserDialogs.Instance.HideLoading(); AoCompletar?.Invoke(this, motorista); } } catch (Exception erro) { if (Gravar) { UserDialogs.Instance.HideLoading(); } await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi"); } }
public static void gerarPagamento(FreteInfo frete, Action <FreteInfo> aoEfetuarPagamento) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var pgtoInicial = new PagamentoInfo { Cpf = usuario.CpfCnpj, IdUsuario = usuario.Id }; pgtoInicial.Itens.Add(new PagamentoItemInfo { Descricao = "Frete", Quantidade = 1, Valor = frete.Preco }); var metodoPagamento = new PagamentoMetodoPage { Pagamento = pgtoInicial, UsaCredito = true, UsaDebito = false, UsaBoleto = false, UsaDinheiro = true }; metodoPagamento.AoEfetuarPagamento += async(sender, pagamento) => { frete.IdPagamento = pagamento.IdPagamento; UserDialogs.Instance.ShowLoading("Processando pagamento..."); try { var regraFrete = FreteFactory.create(); switch (pagamento.Situacao) { case SituacaoPagamentoEnum.Pago: frete.Situacao = FreteSituacaoEnum.ProcurandoMotorista; break; case SituacaoPagamentoEnum.Cancelado: frete.Situacao = FreteSituacaoEnum.Cancelado; break; default: frete.Situacao = FreteSituacaoEnum.AguardandoPagamento; break; } var id_frete = frete.Id; if (id_frete > 0) { await regraFrete.alterar(frete); } else { id_frete = await regraFrete.inserir(frete); } var novoFrete = await regraFrete.pegar(id_frete); UserDialogs.Instance.HideLoading(); aoEfetuarPagamento?.Invoke(novoFrete); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi"); } UserDialogs.Instance.HideLoading(); }; ((RootPage)App.Current.MainPage).PushAsync(metodoPagamento); }
private void inicializarComponente() { _NomeEntry = new Entry { Placeholder = "Nome", VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill }; _SobrenomeEntry = new Entry { Placeholder = "Sobrenome", VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill }; _EmailEntry = new Entry { Placeholder = "Email", Keyboard = Keyboard.Email, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill }; _CelularEntry = new Entry { Placeholder = "Celular", Keyboard = Keyboard.Telephone, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill }; _FotoCNHButton = new FotoImageButton() { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Source = "FotoCNH.png" }; _SenhaEntry = new Entry { Placeholder = "Preencha sua senha", IsPassword = true, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill }; _ConfirmaEntry = new Entry { Placeholder = "Confirme sua senha", IsPassword = true, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill }; _CadastroButton = new Button() { Text = "CADASTRAR", HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.BTN_PRINCIPAL] }; _CadastroButton.Clicked += async(sender, e) => { if (_NomeEntry != null && string.IsNullOrEmpty(_NomeEntry.Text)) { await DisplayAlert("Aviso", "Preencha o seu nome.", "Fechar"); return; } if (_SobrenomeEntry != null && string.IsNullOrEmpty(_SobrenomeEntry.Text)) { await DisplayAlert("Aviso", "Preencha o seu sobrenome.", "Fechar"); return; } if (_CelularEntry != null && string.IsNullOrEmpty(_CelularEntry.Text)) { await DisplayAlert("Aviso", "Preencha o seu celular.", "Fechar"); return; } if (_EmailEntry != null && string.IsNullOrEmpty(_EmailEntry.Text)) { await DisplayAlert("Aviso", "Preencha o seu email.", "Fechar"); return; } if (_SenhaEntry != null && string.IsNullOrEmpty(_SenhaEntry.Text)) { await DisplayAlert("Aviso", "Preencha a senha.", "Fechar"); return; } if (_ConfirmaEntry != null && string.IsNullOrEmpty(_ConfirmaEntry.Text)) { await DisplayAlert("Aviso", "Preencha a confirmação de senha.", "Fechar"); return; } if (_SenhaEntry != null && _ConfirmaEntry != null && string.Compare(_SenhaEntry.Text, _ConfirmaEntry.Text) != 0) { await DisplayAlert("Aviso", "A senha não está batendo com a confirmação.", "Fechar"); return; } var regraUsuario = UsuarioFactory.create(); var usuario = new UsuarioInfo { Nome = _NomeEntry.Text + " " + _SobrenomeEntry.Text, Email = _EmailEntry.Text, Telefone = _CelularEntry.Text, Senha = _SenhaEntry.Text, Situacao = SituacaoEnum.Ativo }; UserDialogs.Instance.ShowLoading("Enviando..."); try { var id_usuario = await regraUsuario.inserir(usuario); var usuarioCadastrado = await regraUsuario.pegar(id_usuario); regraUsuario.gravarAtual(usuarioCadastrado); UserDialogs.Instance.HideLoading(); if (usuarioCadastrado != null) { regraUsuario.gravarAtual(usuarioCadastrado); //App.Current.MainPage = new NavigationPage(new PrincipalPage()); } else { string mensagem = string.Format("Nenhum usuário encontrado com o ID {0}.", id_usuario); await DisplayAlert("Aviso", mensagem, "Fechar"); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); await DisplayAlert("Erro", erro.Message, "Fechar"); } }; }
private void atualizarTela(FreteInfo frete) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var regraMotorista = MotoristaFactory.create(); var motorista = regraMotorista.pegarAtual(); _mainLayout.Children.Clear(); if (frete.RotaEncontrada) { if (!string.IsNullOrEmpty(frete.Polyline)) { _mainLayout.Children.Insert(0, _CustomMap); var posicoes = MapaUtils.decodePolyline(frete.Polyline); _CustomMap.Polyline = posicoes; } else { if (frete.Locais.Count() > 0) { _mainLayout.Children.Insert(0, _CustomMap); var posicoes = new List <Position>(); foreach (var local in frete.Locais) { posicoes.Add(new Position(local.Latitude, local.Longitude)); } _CustomMap.Polyline = posicoes; } } } else { if (frete.Locais.Count() > 0) { _mainLayout.Children.Insert(0, _CustomMap); var posicoes = new List <Position>(); foreach (var local in frete.Locais) { posicoes.Add(new Position(local.Latitude, local.Longitude)); } _CustomMap.Polyline = posicoes; } } if (frete.NotaFrete > 0 && frete.NotaMotorista > 0) { } else if (frete.NotaFrete > 0) { var nota = gerarNota(frete.NotaFrete); nota.Margin = new Thickness(3, 6, 3, 0); _mainLayout.Children.Add(nota); } else if (frete.NotaMotorista > 0) { var nota = gerarNota(frete.NotaMotorista); nota.Margin = new Thickness(3, 6, 3, 0); _mainLayout.Children.Add(nota); } if (!(string.IsNullOrEmpty(frete.EnderecoOrigem) && string.IsNullOrEmpty(frete.EnderecoDestino))) { _mainLayout.Children.Add(gerarLocalizacao(frete)); } _mainLayout.Children.Add(gerarBasico(frete)); _mainLayout.Children.Add(gerarData(frete)); var situacoes = new List <FreteSituacaoEnum>() { FreteSituacaoEnum.EntregaConfirmada, FreteSituacaoEnum.PegandoEncomenda, FreteSituacaoEnum.Entregando, FreteSituacaoEnum.Entregue }; if (situacoes.Contains(frete.Situacao)) { _mainLayout.Children.Add(gerarHorario(frete)); } if (frete.IdUsuario != usuario.Id) { _mainLayout.Children.Add(gerarUsuario(frete.Usuario, "RESPONSÁVEL")); } if (frete.Motorista != null && frete.Motorista.Usuario != null && frete.IdMotorista != usuario.Id) { _mainLayout.Children.Add(gerarUsuario(frete.Motorista.Usuario, "MOTORISTA")); } _mainLayout.Children.Add(_acaoView); _acaoView.Frete = frete; }
/* * private async void abrirHorarioEntrega(PedidoInfo pedido) { * UserDialogs.Instance.ShowLoading("Carregando horários de entrega..."); * try * { * var regraHorario = PedidoHorarioFactory.create(); * var horarios = await regraHorario.listar(Pedido.IdLoja); * if (horarios.Count > 1) * { * var horarioEntregaPage = new HorarioEntregaPage() * { * Title = "Horário de Entrega", * Horarios = horarios * }; * horarioEntregaPage.AoSelecionar += (s2, horario) => * { * Pedido.DiaEntrega = horarioEntregaPage.DiaEntrega; * Pedido.HorarioEntrega = horario.Horario; * definirEntrega(Pedido); * }; * UserDialogs.Instance.HideLoading(); * await Navigation.PushAsync(horarioEntregaPage); * } * else * { * UserDialogs.Instance.HideLoading(); * definirEntrega(Pedido); * } * } * catch (Exception erro) * { * UserDialogs.Instance.HideLoading(); * UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); * //await DisplayAlert("Erro", erro.Message, "Entendi"); * } * } */ protected virtual void inicializarComponente() { _entregaButton = new MenuButton { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Start, Icon = "fa-motorcycle", Text = "Receber em\nCasa", Style = Estilo.Current[Estilo.BTN_ROOT] }; _entregaButton.Click += async(sender, e) => { Pedido.Entrega = EntregaEnum.Entrega; var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); /* * if (usuario.Enderecos.Count == 1) * { * var endereco = usuario.Enderecos[0]; * Pedido.Cep = endereco.Cep; * Pedido.Logradouro = endereco.Logradouro; * Pedido.Complemento = endereco.Complemento; * Pedido.Numero = endereco.Numero; * Pedido.Bairro = endereco.Bairro; * Pedido.Cidade = endereco.Cidade; * Pedido.Uf = endereco.Uf; * Pedido.Latitude = endereco.Latitude; * Pedido.Longitude = endereco.Longitude; * * definirEntrega(Pedido); * } */ if (usuario.Enderecos.Count > 0) { var enderecoListaPage = EnderecoUtils.gerarEnderecoLista((endereco) => { Pedido.Cep = endereco.Cep; Pedido.Logradouro = endereco.Logradouro; Pedido.Complemento = endereco.Complemento; Pedido.Numero = endereco.Numero; Pedido.Bairro = endereco.Bairro; Pedido.Cidade = endereco.Cidade; Pedido.Uf = endereco.Uf; Pedido.Latitude = endereco.Latitude; Pedido.Longitude = endereco.Longitude; //abrirHorarioEntrega(Pedido); definirEntrega(Pedido); }); var enderecos = new List <EnderecoInfo>(); foreach (var endereco in usuario.Enderecos) { enderecos.Add(endereco); } enderecoListaPage.Enderecos = enderecos; await Navigation.PushAsync(enderecoListaPage); } else { var cepPage = EnderecoUtils.gerarBuscaPorCep(async(endereco) => { UserDialogs.Instance.ShowLoading("Atualizando endereço..."); try { var regraLogin = UsuarioFactory.create(); usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco)); await regraLogin.alterar(usuario); regraLogin.gravarAtual(usuario); Pedido.Cep = endereco.Cep; Pedido.Logradouro = endereco.Logradouro; Pedido.Complemento = endereco.Complemento; Pedido.Numero = endereco.Numero; Pedido.Bairro = endereco.Bairro; Pedido.Cidade = endereco.Cidade; Pedido.Uf = endereco.Uf; Pedido.Latitude = endereco.Latitude; Pedido.Longitude = endereco.Longitude; var regraHorario = PedidoHorarioFactory.create(); var horarios = await regraHorario.listar(Pedido.IdLoja); if (horarios.Count > 1) { var horarioEntregaPage = new HorarioEntregaPage() { Title = "Horário de Entrega", Horarios = horarios }; horarioEntregaPage.AoSelecionar += (s2, e2) => { definirEntrega(Pedido); }; UserDialogs.Instance.HideLoading(); await Navigation.PushAsync(horarioEntregaPage); } else { UserDialogs.Instance.HideLoading(); definirEntrega(Pedido); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); //await DisplayAlert("Erro", erro.Message, "Entendi"); } }, false); await Navigation.PushAsync(cepPage); } }; _retirarNoLocalButton = new MenuButton { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Start, Icon = "fa-home", Text = "Retirar na Loja", Style = Estilo.Current[Estilo.BTN_ROOT] }; _retirarNoLocalButton.Click += (sender, e) => { Pedido.Entrega = EntregaEnum.RetirarNaLoja; var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); if (usuario.Enderecos.Count == 1) { var endereco = usuario.Enderecos[0]; Pedido.Cep = endereco.Cep; Pedido.Logradouro = endereco.Logradouro; Pedido.Complemento = endereco.Complemento; Pedido.Numero = endereco.Numero; Pedido.Bairro = endereco.Bairro; Pedido.Cidade = endereco.Cidade; Pedido.Uf = endereco.Uf; Pedido.Latitude = endereco.Latitude; Pedido.Longitude = endereco.Longitude; } definirEntrega(Pedido); }; }
private void atualizarTela(FreteInfo frete) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var regraMotorista = MotoristaFactory.create(); var motorista = regraMotorista.pegarAtual(); switch (frete.Situacao) { case FreteSituacaoEnum.ProcurandoMotorista: if (motorista != null && frete.IdUsuario != motorista.Id) { _acaoButton.Text = "Quero essa viagem"; _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO]; _mainLayout.Children.Add(_acaoButton); } break; case FreteSituacaoEnum.Aguardando: _acaoButton.Text = "Iniciar"; _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO]; _mainLayout.Children.Add(_acaoButton); break; case FreteSituacaoEnum.PegandoEncomenda: if (motorista != null && frete.IdMotorista == motorista.Id) { _acaoButton.Text = "Peguei a encomenda"; _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO]; _mainLayout.Children.Add(_acaoButton); } break; case FreteSituacaoEnum.Entregando: if (motorista != null && frete.IdMotorista == motorista.Id) { _acaoButton.Text = "Entreguei!"; _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO]; _mainLayout.Children.Add(_acaoButton); } break; case FreteSituacaoEnum.Entregue: if (usuario != null && frete.IdUsuario == usuario.Id) { _acaoButton.Text = "Confirmar entrega!"; _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO]; _mainLayout.Children.Add(_acaoButton); } break; } var situacoes = new List <FreteSituacaoEnum>() { FreteSituacaoEnum.PegandoEncomenda, FreteSituacaoEnum.Entregando }; if (situacoes.Contains(frete.Situacao)) { _mainLayout.Children.Add(_acompanharButton); } _mainLayout.Children.Add(_abrirRotaButton); situacoes = new List <FreteSituacaoEnum>() { FreteSituacaoEnum.EntregaConfirmada, FreteSituacaoEnum.Entregue }; if (situacoes.Contains(frete.Situacao)) { if (frete.IdUsuario == usuario.Id && !(frete.NotaMotorista > 0)) { _avaliarButton.Text = "Avaliar Motorista"; _mainLayout.Children.Add(_avaliarButton); } else if (frete.IdMotorista == usuario.Id && !(frete.NotaFrete > 0)) { _avaliarButton.Text = "Avaliar Cliente"; _mainLayout.Children.Add(_avaliarButton); } } }
private void inicializarComponente() { _enderecoForm = new EnderecoMapaForm { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill }; _enderecoForm.Endereco = _Info; _salvarButton = new Button { Text = "Salvar", Style = Estilo.Current[Estilo.BTN_PADRAO] }; _salvarButton.Clicked += async(sender, e) => { if (string.IsNullOrEmpty(_enderecoForm.Endereco.Cep)) { await DisplayAlert("Atenção", "Preencha o cep.", "Entendi"); return; } if (string.IsNullOrEmpty(_enderecoForm.Endereco.Uf)) { await DisplayAlert("Atenção", "Preencha a UF.", "Entendi"); return; } if (string.IsNullOrEmpty(_enderecoForm.Endereco.Cidade)) { await DisplayAlert("Atenção", "Preencha a cidade.", "Entendi"); return; } if (string.IsNullOrEmpty(_enderecoForm.Endereco.Logradouro)) { await DisplayAlert("Atenção", "Preencha a rua.", "Entendi"); return; } if (string.IsNullOrEmpty(_enderecoForm.Endereco.Numero)) { await DisplayAlert("Atenção", "Preencha o numero.", "Entendi"); return; } UserDialogs.Instance.ShowLoading("Enviando..."); var usuarioFactor = UsuarioFactory.create(); var usuario = usuarioFactor.pegarAtual(); if (_Info != null) { var end = UsuarioEnderecoInfo.clonar(_enderecoForm.Endereco); var endOld = usuario.Enderecos.Where(x => x.Id == _Info.Id).FirstOrDefault(); end.Id = endOld.Id; usuario.Enderecos.Remove(endOld); usuario.Enderecos.Add(end); } else { usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(_enderecoForm.Endereco)); } await usuarioFactor.alterar(usuario); var usuarioCadastrado = await usuarioFactor.pegar(usuario.Id); usuarioFactor.gravarAtual(usuarioCadastrado); UserDialogs.Instance.HideLoading(); Finished?.Invoke(this, _enderecoForm.Endereco); Navigation.PopAsync(); }; }
private void inicializarComponente() { _nomeEmpresaEntry = new Entry { Placeholder = "Nome da Empresa", VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill }; _enderecoForm = new EnderecoListaForm { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill }; _CadastroButton = new Button() { Text = "CADASTRAR", HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.BTN_SUCESSO] }; _CadastroButton.Clicked += async(sender, e) => { var regraUsuario = UsuarioFactory.create(); _usuario.Preferencias.Add(new UsuarioPreferenciaInfo { Chave = "NOME_EMPRESA", Valor = _nomeEmpresaEntry.Text }); _usuario.Enderecos = new List <UsuarioEnderecoInfo>(); foreach (var endereco in _enderecoForm.Enderecos) { _usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco)); } UserDialogs.Instance.ShowLoading("Enviando..."); try { if (_usuario.Id > 0) { await regraUsuario.alterar(_usuario); } else { _usuario.Id = await regraUsuario.inserir(_usuario); } var usuarioCadastrado = await regraUsuario.pegar(_usuario.Id); regraUsuario.gravarAtual(usuarioCadastrado); UserDialogs.Instance.HideLoading(); if (usuarioCadastrado != null) { regraUsuario.gravarAtual(usuarioCadastrado); AoCompletar?.Invoke(this, _usuario); } else { string mensagem = string.Format("Nenhum usuário encontrado com o ID {0}.", _usuario.Id); await DisplayAlert("Aviso", mensagem, "Fechar"); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi"); } }; }