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"); } }
/* * 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"); } }
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"); } }); }
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; } }); }