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); } } }
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); }
public EnderecoRetiradaPage(UsuarioEnderecoInfo info = null) { _Info = info; Title = "Endereço de retirada"; inicializarComponente(); Content = new StackLayout { Margin = 10, Children = { _enderecoForm, _salvarButton } }; }
/* * 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 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"); } }; }
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(); }; }
public static Page gerarCarrinho(Action <PedidoInfo> AoSelecionarEndereco) { var carrinhoPage = new CarrinhoPage { Title = "Meu carrinho" }; carrinhoPage.AoFinalizar += (s1, produtos) => { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); if (usuario != null && usuario.Id > 0) { if (usuario.Enderecos.Count > 0) { var enderecoListaPage = EnderecoUtils.gerarEnderecoLista((endereco) => { AoSelecionarEndereco(PedidoUtils.gerar(produtos, endereco)); }); enderecoListaPage.Title = "Local de entrega"; ((Page)s1).Navigation.PushAsync(enderecoListaPage); } else { var cepPage = EnderecoUtils.gerarBuscaPorCep((endereco) => { usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco)); var regraLogin = UsuarioFactory.create(); regraLogin.gravarAtual(usuario); AoSelecionarEndereco(PedidoUtils.gerar(produtos, endereco)); }); ((Page)s1).Navigation.PushAsync(cepPage); } } else { if (usuario == null) { usuario = new UsuarioInfo(); } var usuarioCadastroPage = UsuarioFormPageFactory.create(); usuarioCadastroPage.Title = "Cadastre-se"; usuarioCadastroPage.Gravar = true; usuarioCadastroPage.Usuario = usuario; usuarioCadastroPage.AoCadastrar += (s2, usuario2) => { var cepPage = EnderecoUtils.gerarBuscaPorCep((endereco) => { usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco)); var regraLogin = UsuarioFactory.create(); regraLogin.gravarAtual(usuario); AoSelecionarEndereco(PedidoUtils.gerar(produtos, endereco)); }); ((Page)s2).Navigation.PushAsync(cepPage); }; ((Page)s1).Navigation.PushAsync(usuarioCadastroPage); } }; return(carrinhoPage); }
/* * * public static void selecionarEndereco(Action<EnderecoInfo> aoSelecionar) * { * var regraUsuario = UsuarioFactory.create(); * var usuario = regraUsuario.pegarAtual(); * if (usuario != null) * { * if (usuario.Enderecos.Count == 1) * { * aoSelecionar?.Invoke(usuario.Enderecos[0]); * } * else if (usuario.Enderecos.Count > 1) * { * var enderecoListaPage = EnderecoUtils.gerarEnderecoLista((endereco) => { * aoSelecionar?.Invoke(endereco); * }); * var enderecos = new List<EnderecoInfo>(); * foreach (var endereco in usuario.Enderecos) * { * enderecos.Add(endereco); * } * enderecoListaPage.Enderecos = enderecos; * if (App.Current.MainPage is RootPage) * { * ((RootPage)App.Current.MainPage).PushAsync(enderecoListaPage); * } * else * { * App.Current.MainPage = App.gerarRootPage(enderecoListaPage); * } * } * else * { * var cepPage = EnderecoUtils.gerarBuscaPorCep((endereco) => { * //var regraUsuario = UsuarioFactory.create(); * var usuarioCep = regraUsuario.pegarAtual(); * if (usuarioCep == null) * { * usuarioCep = new UsuarioInfo(); * } * usuarioCep.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco)); * regraUsuario.gravarAtual(usuarioCep); * * aoSelecionar?.Invoke(endereco); * }); * if (App.Current.MainPage is RootPage) * { * ((RootPage)App.Current.MainPage).PushAsync(cepPage); * } * else * { * App.Current.MainPage = App.gerarRootPage(cepPage); * } * } * } * else * { * var cepPage = EnderecoUtils.gerarBuscaPorCep((endereco) => { * var usuarioCep = regraUsuario.pegarAtual(); * if (usuarioCep == null) * { * usuarioCep = new UsuarioInfo(); * } * usuarioCep.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco)); * regraUsuario.gravarAtual(usuarioCep); * * aoSelecionar?.Invoke(endereco); * }); * if (App.Current.MainPage is RootPage) * { * ((RootPage)App.Current.MainPage).PushAsync(cepPage); * } * else * { * App.Current.MainPage = App.gerarRootPage(cepPage); * } * } * } */ public static void selecionarEndereco(Action <EnderecoInfo> aoSelecionar) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); if (usuario != null) { if (usuario.Enderecos.Count == 1) { aoSelecionar?.Invoke(usuario.Enderecos[0]); } else if (usuario.Enderecos.Count > 1) { var enderecoListaPage = EnderecoUtils.gerarEnderecoLista((endereco) => { aoSelecionar?.Invoke(endereco); }); var enderecos = new List <EnderecoInfo>(); foreach (var endereco in usuario.Enderecos) { enderecos.Add(endereco); } enderecoListaPage.Enderecos = enderecos; if (App.Current.MainPage is RootPage) { ((RootPage)App.Current.MainPage).PushAsync(enderecoListaPage); } else { App.Current.MainPage = App.gerarRootPage(enderecoListaPage); } } else { var cepPage = EnderecoUtils.gerarBuscaPorCep((endereco) => { //var regraUsuario = UsuarioFactory.create(); var usuarioCep = regraUsuario.pegarAtual(); if (usuarioCep == null) { usuarioCep = new UsuarioInfo(); } usuarioCep.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco)); regraUsuario.gravarAtual(usuarioCep); aoSelecionar?.Invoke(endereco); }); if (App.Current.MainPage is RootPage) { ((RootPage)App.Current.MainPage).PushAsync(cepPage); } else { App.Current.MainPage = App.gerarRootPage(cepPage); } } } else { var cepPage = EnderecoUtils.gerarBuscaPorCep((endereco) => { var usuarioCep = regraUsuario.pegarAtual(); if (usuarioCep == null) { usuarioCep = new UsuarioInfo(); } usuarioCep.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco)); regraUsuario.gravarAtual(usuarioCep); aoSelecionar?.Invoke(endereco); }); if (App.Current.MainPage is RootPage) { ((RootPage)App.Current.MainPage).PushAsync(cepPage); } else { App.Current.MainPage = App.gerarRootPage(cepPage); } } }