Пример #1
0
        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);
        }
Пример #2
0
        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");
                }
            });
        }
Пример #3
0
        /*
         * 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);
        }