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