private void atualizarSeguimento(SeguimentoInfo seguimento, int left, int top) { var seguimentoView = new SeguimentoView { Seguimento = seguimento }; seguimentoView.AoClicar += (sender, e) => { EnderecoUtils.selecionarEndereco((endereco) => { AoClicar?.Invoke(sender, e); }); }; _seguimentoGrid.Children.Add(seguimentoView, left, top); }
protected async void abrirProduto(BannerPecaInfo peca) { if (!peca.IdProduto.HasValue) { await UserDialogs.Instance.AlertAsync("Banner não está ligado a nenhum produto!", "Erro", "Entendi"); return; } EnderecoUtils.selecionarEndereco(async(endereco) => { UserDialogs.Instance.ShowLoading("Carregando..."); try { var regraProduto = ProdutoFactory.create(); var regraLoja = LojaFactory.create(); var produto = await regraProduto.pegar(peca.IdProduto.Value); var loja = await regraLoja.pegar(produto.IdLoja); await regraLoja.gravarAtual(loja); if (App.Current.MainPage is RootPage) { ((RootPage)App.Current.MainPage).atualizarMenu(); } var produtoPage = new ProdutoPage() { Title = produto.Nome, Produto = produto }; UserDialogs.Instance.HideLoading(); if (App.Current.MainPage is RootPage) { ((RootPage)App.Current.MainPage).PushAsync(produtoPage); } else { App.Current.MainPage = App.gerarRootPage(produtoPage); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi"); } }); }
/* * 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); }