private async void executarBusca(string palavraChave)
        {
            try {
                UserDialogs.Instance.ShowLoading("Buscando...");
                var regraProduto = ProdutoFactory.create();
                var regraLoja    = LojaFactory.create();
                var loja         = regraLoja.pegarAtual();

                Filtro.PalavraChave = palavraChave;
                Items = criarListaInfinita();
                _produtoListView.ItemsSource = null;
                _produtoListView.ItemsSource = Items;
                _buscando = true;
                await Items.LoadMoreAsync();

                //_produtoListView.ItemsSource = await regraProduto.buscar(loja.Id, palavraChave);
                UserDialogs.Instance.HideLoading();
            }
            catch (Exception erro)
            {
                UserDialogs.Instance.HideLoading();
                //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
                await DisplayAlert("Erro", erro.Message, "Entendi");
            }
        }
Exemple #2
0
        /*
         * protected virtual void atualizarProduto(IList<ProdutoInfo> produtos) {
         *  _produtoListView.ItemsSource = produtos;
         * }
         */

        protected virtual async Task carregarProduto()
        {
            UserDialogs.Instance.ShowLoading("Carregando...");
            try
            {
                var regraLoja = LojaFactory.create();
                var loja      = regraLoja.pegarAtual();
                if (loja != null)
                {
                    _empresaLabel.Text = loja.Nome;
                }

                var args = new ProdutoListaEventArgs(Filtro);
                //await AoCarregar?.Invoke(this, args);
                var regraProduto = ProdutoFactory.create();
                var retorno      = await regraProduto.buscar(Filtro);

                _produtoListView.ItemsSource = retorno.Produtos;
                //atualizarProduto(retorno.Produtos);
                UserDialogs.Instance.HideLoading();
            }
            catch (Exception erro)
            {
                UserDialogs.Instance.HideLoading();
                UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
            }
        }
Exemple #3
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");
                }
            });
        }
Exemple #4
0
        protected InfiniteScrollCollection <ProdutoColunaInfo> criarListaInfinita()
        {
            return(new InfiniteScrollCollection <ProdutoColunaInfo>
            {
                OnLoadMore = async() => {
                    var produtos = new List <ProdutoColunaInfo>();
                    if (!_buscando)
                    {
                        return produtos;
                    }
                    var paginaAtual = ((Items.Count * 3) / TAMANHO_PAGINA) + 1;

                    _produtoListView.Footer = _carregando;
                    _carregando.IsRunning = true;
                    _carregando.IsVisible = true;
                    var regraProduto = ProdutoFactory.create();
                    Filtro.Pagina = paginaAtual;
                    Filtro.TamanhoPagina = TAMANHO_PAGINA;
                    var retorno = await regraProduto.buscar(Filtro);

                    ProdutoColunaInfo coluna = null;
                    foreach (var produto in retorno.Produtos)
                    {
                        if (coluna == null)
                        {
                            coluna = new ProdutoColunaInfo();
                        }
                        if (coluna.Coluna1 == null)
                        {
                            coluna.Coluna1 = produto;
                        }
                        else if (coluna.Coluna2 == null)
                        {
                            coluna.Coluna2 = produto;
                        }
                        else if (coluna.Coluna3 == null)
                        {
                            coluna.Coluna3 = produto;
                            produtos.Add(coluna);
                            coluna = null;
                        }
                    }
                    if (coluna != null)
                    {
                        produtos.Add(coluna);
                    }
                    _carregando.IsRunning = false;
                    _carregando.IsVisible = false;
                    _produtoListView.Footer = null;
                    var qtdePordutoBaixado = (Items.Count + produtos.Count) * 3;
                    if (qtdePordutoBaixado >= retorno.Total)
                    {
                        _buscando = false;
                    }
                    if (retorno.Total == 0)
                    {
                        //_mainLayout.Children.Insert(0, _vazioFrame);
                        adicionarAvisoVazio();
                    }
                    return produtos;
                }
            });
        }