/* * public static Page gerarEndereco() { * return 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); * * var lojaListaPage = new LojaListaPage * { * Title = "Selecione sua Loja" * }; * lojaListaPage.AoCarregar += async (sender, e) => * { * var regraLoja = LojaFactory.create(); * var regraBanner = BannerPecaFactory.create(); * e.Banners = await regraBanner.gerar(new BannerFiltroInfo { * SlugBanner = BannerUtils.SEGUIMENTO, * Latitude = endereco.Latitude.Value, * Longitude = endereco.Longitude.Value, * Raio = regraLoja.RaioBusca * }); * e.Lojas = await regraLoja.buscar(endereco.Latitude.Value, endereco.Longitude.Value, regraLoja.RaioBusca); * }; * if (App.Current.MainPage is RootPage) { * ((RootPage)App.Current.MainPage).PushAsync(lojaListaPage); * } * else { * App.Current.MainPage = App.gerarRootPage(lojaListaPage); * } * }); * } */ /* * public static Page gerarSelecionar() { * var regraUsuario = UsuarioFactory.create(); * var usuario = regraUsuario.pegarAtual(); * if (usuario != null) * { * if (usuario.Enderecos.Count == 1) * { * var endereco = usuario.Enderecos[0]; * var lojaListaPage = new LojaListaPage { * Title = "Selecione sua Loja" * }; * lojaListaPage.AoCarregar += async (sender, e) => * { * var regraLoja = LojaFactory.create(); * var regraBanner = BannerPecaFactory.create(); * e.Banners = await regraBanner.gerar(new BannerFiltroInfo * { * SlugBanner = BannerUtils.SEGUIMENTO, * Latitude = endereco.Latitude.Value, * Longitude = endereco.Longitude.Value, * Raio = regraLoja.RaioBusca * }); * e.Lojas = await regraLoja.buscar(endereco.Latitude.Value, endereco.Longitude.Value, regraLoja.RaioBusca); * }; * return lojaListaPage; * } * else if (usuario.Enderecos.Count > 1) * { * //return EnderecoUtils.gerarEnderecoLista((endereco) => * var enderecoListaPage = EnderecoUtils.gerarEnderecoLista((endereco) => * { * var lojaListaPage = new LojaListaPage * { * Title = "Selecione sua Loja" * }; * lojaListaPage.AoCarregar += async (sender, e) => * { * var regraLoja = LojaFactory.create(); * var regraBanner = BannerPecaFactory.create(); * e.Banners = await regraBanner.gerar(new BannerFiltroInfo * { * SlugBanner = BannerUtils.SEGUIMENTO, * Latitude = endereco.Latitude.Value, * Longitude = endereco.Longitude.Value, * Raio = regraLoja.RaioBusca * }); * e.Lojas = await regraLoja.buscar(endereco.Latitude.Value, endereco.Longitude.Value, regraLoja.RaioBusca); * }; * if (App.Current.MainPage is RootPage) { * ((RootPage)App.Current.MainPage).PushAsync(lojaListaPage); * } * else { * App.Current.MainPage = App.gerarRootPage(lojaListaPage); * } * }); * var enderecos = new List<EnderecoInfo>(); * foreach (var endereco in usuario.Enderecos) { * enderecos.Add(endereco); * } * enderecoListaPage.Enderecos = enderecos; * return enderecoListaPage; * } * else * { * return gerarEndereco(); * } * } * else * { * return gerarEndereco(); * } * } */ public static async Task <Page> gerarTelaInicial() { UserDialogs.Instance.ShowLoading("Carregando..."); var telaInicialPage = new TelaInicialPage { Title = "Selecione o seguimento" }; try { var regraLoja = LojaFactory.create(); var regraBanner = BannerPecaFactory.create(); var regraSeguimento = SeguimentoFactory.create(); telaInicialPage.Banners = await regraBanner.gerar(new BannerFiltroInfo { SlugBanner = BannerUtils.TELA_INICIAL, Ordem = BannerOrdemEnum.Aleatorio }); telaInicialPage.Seguimentos = await regraSeguimento.listar(); telaInicialPage.AoBuscarPorRaio += (sender, raio) => { regraLoja.RaioBusca = raio; EnderecoUtils.selecionarEndereco(async(endereco) => { var seguimentoPage = await gerarSeguimento(endereco); if (App.Current.MainPage is RootPage) { ((RootPage)App.Current.MainPage).PushAsync(seguimentoPage); } else { App.Current.MainPage = App.gerarRootPage(seguimentoPage); } }); }; telaInicialPage.AoClicar += (sender, seguimento) => { if (seguimento.ApenasPJ) { LoginUtils.carregarUsuario((usuario) => { if (usuario.PJ.HasValue && usuario.PJ.Value) { EnderecoUtils.selecionarEndereco(async(endereco) => { /* * var seguimentoPage = await gerarSeguimento(endereco); * if (App.Current.MainPage is RootPage) { * ((RootPage)App.Current.MainPage).PushAsync(seguimentoPage); * } * else { * App.Current.MainPage = App.gerarRootPage(seguimentoPage); * } */ try { UserDialogs.Instance.ShowLoading("Carregando..."); var lojas = await regraLoja.buscar(endereco.Latitude.Value, endereco.Longitude.Value, regraLoja.RaioBusca, seguimento.Id); if (lojas.Count > 0) { //var seguimentoPage = await gerarSeguimento(endereco); var lojaListaPage = await LojaUtils.gerarLojaLista(seguimento, endereco, lojas); UserDialogs.Instance.HideLoading(); if (App.Current.MainPage is RootPage) { ((RootPage)App.Current.MainPage).PushAsync(lojaListaPage); } else { App.Current.MainPage = App.gerarRootPage(lojaListaPage); } } else { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync("Você deve aumentar o raio da busca ou aguardar futura loja no seguimento."); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); } }); } else { UserDialogs.Instance.AlertAsync("Essa é uma área apenas para pessoas jurídicas."); } }); } else { EnderecoUtils.selecionarEndereco(async(endereco) => { try { UserDialogs.Instance.ShowLoading("Carregando..."); var lojas = await regraLoja.buscar(endereco.Latitude.Value, endereco.Longitude.Value, regraLoja.RaioBusca, seguimento.Id); if (lojas.Count > 0) { //var seguimentoPage = await gerarSeguimento(endereco); var lojaListaPage = await LojaUtils.gerarLojaLista(seguimento, endereco, lojas); UserDialogs.Instance.HideLoading(); if (App.Current.MainPage is RootPage) { ((RootPage)App.Current.MainPage).PushAsync(lojaListaPage); } else { App.Current.MainPage = App.gerarRootPage(lojaListaPage); } } else { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync("Você deve aumentar o raio da busca ou aguardar futura loja no seguimento."); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); } }); } }; UserDialogs.Instance.HideLoading(); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); } return(telaInicialPage); }
public static async Task <Page> gerarSeguimento(EnderecoInfo endereco) { UserDialogs.Instance.ShowLoading("Carregando..."); var seguimentoPage = new SeguimentoListaPage { Title = "Selecione o seguimento" }; try { var regraBanner = BannerPecaFactory.create(); var regraSeguimento = SeguimentoFactory.create(); var regraLoja = LojaFactory.create(); seguimentoPage.Banners = await regraBanner.gerar(new BannerFiltroInfo { /* * SlugBanner = BannerUtils.SEGUIMENTOS, * Latitude = endereco.Latitude.Value, * Longitude = endereco.Longitude.Value, * Raio = regraLoja.RaioBusca, * Ordem = BannerOrdemEnum.Aleatorio */ SlugBanner = BannerUtils.SEGUIMENTOS, Ordem = BannerOrdemEnum.Aleatorio }); seguimentoPage.Seguimentos = await regraSeguimento.buscar(endereco.Latitude.Value, endereco.Longitude.Value, regraLoja.RaioBusca); seguimentoPage.AoBuscarPorRaio += async(sender, raio) => { UserDialogs.Instance.ShowLoading("Carregando..."); try { regraLoja.RaioBusca = raio; seguimentoPage.Banners = await regraBanner.gerar(new BannerFiltroInfo { /* * SlugBanner = BannerUtils.SEGUIMENTOS, * Latitude = endereco.Latitude.Value, * Longitude = endereco.Longitude.Value, * Raio = regraLoja.RaioBusca, * Ordem = BannerOrdemEnum.Aleatorio */ SlugBanner = BannerUtils.SEGUIMENTOS, Ordem = BannerOrdemEnum.Aleatorio }); seguimentoPage.Seguimentos = await regraSeguimento.buscar(endereco.Latitude.Value, endereco.Longitude.Value, regraLoja.RaioBusca); UserDialogs.Instance.HideLoading(); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); } }; seguimentoPage.AoClicar += async(sender, seguimento) => { if (seguimento.ApenasPJ) { LoginUtils.carregarUsuario(async(usuario) => { if (usuario.PJ.HasValue && usuario.PJ.Value) { try { UserDialogs.Instance.ShowLoading("Carregando..."); var lojas = await regraLoja.buscar(endereco.Latitude.Value, endereco.Longitude.Value, regraLoja.RaioBusca, seguimento.Id); if (lojas.Count > 0) { var lojaListaPage = await LojaUtils.gerarLojaLista(seguimento, endereco, lojas); UserDialogs.Instance.HideLoading(); await seguimentoPage.Navigation.PushAsync(lojaListaPage); } else { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync("Você deve aumentar o raio da busca ou aguardar futura loja no seguimento."); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); } //var lojaListaPage = gerarLojaLista(seguimento, endereco); //seguimentoPage.Navigation.PushAsync(lojaListaPage); } else { await UserDialogs.Instance.AlertAsync("Essa é uma área apenas para pessoas jurídicas."); } }); } else { //var lojaListaPage = gerarLojaLista(seguimento, endereco); //seguimentoPage.Navigation.PushAsync(lojaListaPage); try { UserDialogs.Instance.ShowLoading("Carregando..."); var lojas = await regraLoja.buscar(endereco.Latitude.Value, endereco.Longitude.Value, regraLoja.RaioBusca, seguimento.Id); if (lojas.Count > 0) { var lojaListaPage = await LojaUtils.gerarLojaLista(seguimento, endereco, lojas); UserDialogs.Instance.HideLoading(); await seguimentoPage.Navigation.PushAsync(lojaListaPage); } else { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync("Você deve aumentar o raio da busca ou aguardar futura loja no seguimento."); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); } } }; UserDialogs.Instance.HideLoading(); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); } return(seguimentoPage); }
public static Page gerarCarrinhoParaEntrega() { var carrinhoPage = new CarrinhoPage { Title = "Meu carrinho" }; carrinhoPage.AoFinalizar += (s1, produtos) => { LoginUtils.carregarUsuario((usuario) => { var metodoEntregaPage = PedidoUtils.gerarEntregaMetodo(async(pedido) => { if (await UserDialogs.Instance.ConfirmAsync("Deseja fechar o pedido?", "Aviso", "Sim", "Não", null)) { var pagamentoMetodoPage = PagamentoUtils.gerarPagamento(async(pagamento) => { UserDialogs.Instance.ShowLoading("Enviando..."); try { pedido.IdPagamento = pagamento.IdPagamento; switch (pagamento.Tipo) { case TipoPagamentoEnum.CreditoOnline: pedido.FormaPagamento = FormaPagamentoEnum.CreditoOnline; break; case TipoPagamentoEnum.DebitoOnline: pedido.FormaPagamento = FormaPagamentoEnum.DebitoOnline; break; case TipoPagamentoEnum.Boleto: pedido.FormaPagamento = FormaPagamentoEnum.Boleto; break; case TipoPagamentoEnum.Dinheiro: pedido.FormaPagamento = FormaPagamentoEnum.Dinheiro; pedido.TrocoPara = pagamento.TrocoPara; break; case TipoPagamentoEnum.CartaoOffline: pedido.FormaPagamento = FormaPagamentoEnum.CartaoOffline; break; } switch (pagamento.Situacao) { case SituacaoPagamentoEnum.Pago: pedido.Situacao = Pedido.Model.SituacaoEnum.Preparando; break; case SituacaoPagamentoEnum.AguardandoPagamento: pedido.Situacao = Pedido.Model.SituacaoEnum.AguardandoPagamento; break; default: pedido.Situacao = Pedido.Model.SituacaoEnum.Pendente; break; } var regraPedido = PedidoFactory.create(); int idPedido = pedido.Id; if (idPedido > 0) { await regraPedido.alterar(pedido); } else { idPedido = await regraPedido.inserir(pedido); } var pedidoFechado = await regraPedido.pegar(idPedido); var regraCarrinho = CarrinhoFactory.create(); regraCarrinho.limpar(); if (pedidoFechado.Entrega == EntregaEnum.RetiradaMapeada) { AcompanhamentoUtils.iniciarAcompanhamento(pedidoFechado); } if (pedidoFechado.Entrega == EntregaEnum.Entrega && pedido.Situacao != Pedido.Model.SituacaoEnum.AguardandoPagamento) { var regraHorario = PedidoHorarioFactory.create(); var horarios = await regraHorario.listar(pedidoFechado.IdLoja); if (horarios.Count > 1) { var horarioEntregaPage = new HorarioEntregaPage() { Title = "Horário de Entrega", //Pedido = pedidoFechado, Horarios = horarios }; horarioEntregaPage.AoSelecionar += async(s2, horario) => { UserDialogs.Instance.ShowLoading("Enviando..."); try { pedidoFechado.DiaEntrega = horarioEntregaPage.DiaEntrega; pedidoFechado.HorarioEntrega = horario; pedidoFechado.Avisar = false; await regraPedido.alterar(pedidoFechado); ((RootPage)App.Current.MainPage).PaginaAtual = new PedidoPage { Pedido = pedidoFechado }; UserDialogs.Instance.HideLoading(); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); } }; UserDialogs.Instance.HideLoading(); ((RootPage)App.Current.MainPage).PushAsync(horarioEntregaPage); } else { UserDialogs.Instance.HideLoading(); ((RootPage)App.Current.MainPage).PaginaAtual = new PedidoPage { Pedido = pedidoFechado }; } } else { UserDialogs.Instance.HideLoading(); ((RootPage)App.Current.MainPage).PaginaAtual = new PedidoPage { Pedido = pedidoFechado }; } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); } }); var regraLoja = LojaFactory.create(); var loja = regraLoja.pegarAtual(); pagamentoMetodoPage.UsaCredito = loja.AceitaCreditoOnline; pagamentoMetodoPage.UsaDebito = loja.AceitaDebitoOnline; pagamentoMetodoPage.UsaDinheiro = loja.AceitaDinheiro; pagamentoMetodoPage.UsaBoleto = loja.AceitaBoleto; pagamentoMetodoPage.Pagamento = PagamentoUtils.gerar(pedido); ((RootPage)App.Current.MainPage).PushAsync(pagamentoMetodoPage); } }); metodoEntregaPage.Pedido = PedidoUtils.gerar(produtos); ((RootPage)App.Current.MainPage).PushAsync(metodoEntregaPage); }); }; return(carrinhoPage); }