public async Task <ActionResult <List <Produto> > > GetProdutos(FiltroProdutoViewModel search) { if (search.NomeProduto == "") { return(BadRequest( new { mensagem = "Não foi especificado um produto valido" } )); } // TRATAMENTO DE ERRO ESTÁ CORRETO É NECESSÁRIO NO CONTEXTO ATUAL??? var prod = await _context.Produto.Where(p => p.NomeProduto.Contains(search.NomeProduto)).ToListAsync(); if (prod.Count == 0) { return(NotFound( new { mensagem = "Produto não encontrado" } )); } return(prod); }
public async Task <ActionResult> FilterIndex(string generoOption, string marcaOption, int corOption, string materialOption, string orderType, string category, string termoOption) { var imgCor = ""; var corViewModel = await _corAppServices.GetByIdAsync(corOption); if (corViewModel != null) { imgCor = corViewModel.ImgUrl; } var filtroProdutosViewModel = new FiltroProdutoViewModel(corOption, marcaOption, generoOption, orderType, materialOption, category, imgCor, termoOption); var produtoViewModels = new List <ProdutoViewModel>(); if (!CheckModelNull(filtroProdutosViewModel)) { try { IEnumerable <ProdutoViewModel> filtroList; if (filtroProdutosViewModel.Category != null && filtroProdutosViewModel.Termo == null) { filtroList = await _produtoAppServices.GetCategoryAsync(filtroProdutosViewModel, "AT"); } else if (filtroProdutosViewModel.Termo != null) { filtroList = await _produtoAppServices.GetFilterTermoAsync(filtroProdutosViewModel, "AT"); } else { filtroList = await _produtoAppServices.FilterAndOrderAsync(filtroProdutosViewModel, "AT"); } produtoViewModels = filtroList.ToList(); if (!produtoViewModels.Any()) { TempData["Error"] = "Nenhum produto encontrado de acordo com o filtro"; produtoViewModels = new List <ProdutoViewModel>(); filtroProdutosViewModel = new FiltroProdutoViewModel(); } } catch (ModelValidationExceptions e) { TempData["Error"] = e.Message; produtoViewModels = new List <ProdutoViewModel>(); filtroProdutosViewModel = new FiltroProdutoViewModel(); } } return(await Index(produtoViewModels, filtroProdutosViewModel).ConfigureAwait(false)); }
public async Task <IActionResult> RemoveFilter(string category) { var filtros = new FiltroProdutoViewModel(); IEnumerable <ProdutoViewModel> categoryList = new List <ProdutoViewModel>(); if (category != null) { filtros = new FiltroProdutoViewModel(category); categoryList = await _produtoAppServices.GetCategoryAsync(filtros, "AT"); } return(await Index(await categoryList.ToListAsync(), filtros).ConfigureAwait(false)); }
private static bool CheckModelNull(FiltroProdutoViewModel filtroProdutosViewModel) { if (filtroProdutosViewModel.CorOption <= 0 && filtroProdutosViewModel.MarcaOption == null && filtroProdutosViewModel.GeneroOption == null && filtroProdutosViewModel.OrderType == null && filtroProdutosViewModel.Category == null && filtroProdutosViewModel.MaterialOption == null && filtroProdutosViewModel.Termo == null) { return(true); } return(false); }
public async Task <IActionResult> Page(int corOrder, string generoOrder, string marcaOrder, string orderType, string materialOrder, string category, int pagina, string termoOrder) { var imgCor = ""; var corViewModel = await _corAppServices.GetByIdAsync(corOrder); if (corViewModel != null) { imgCor = corViewModel.ImgUrl; } var filtros = new FiltroProdutoViewModel(corOrder, marcaOrder, generoOrder, orderType, materialOrder, category, imgCor, termoOrder); var listaOrdenada = await _produtoAppServices.FilterAndOrderAsync(filtros, "AT"); return(await Index(listaOrdenada.ToList(), filtros, pagina).ConfigureAwait(false)); }
public async Task <IActionResult> GetCategory(string category, string marca, string gender, string material) { var filtros = new FiltroProdutoViewModel(marca, gender, category, material); var categoryList = await _produtoAppServices.GetCategoryAsync(filtros, "AT"); var list = await categoryList.ToListAsync(); if (list.Count > 0) { return(await Index(list, filtros).ConfigureAwait(false)); } TempData["Error"] = "Nenhum produto encontrado na categoria selecionada"; filtros = new FiltroProdutoViewModel(); return(await Index(list, filtros).ConfigureAwait(false)); }
private async Task <FiltroModel> ToFilterModel(FiltroProdutoViewModel filtroViewModel) { var filtroModel = _mapper.Map <FiltroModel>(filtroViewModel); if (filtroViewModel.MarcaOption != null) { var marcaModel = await _marcaServices.GetByNameAsync(filtroViewModel.MarcaOption); filtroModel.SetMarcaOption(marcaModel.Id); } if (filtroViewModel.MaterialOption != null) { var materialModel = await _materialServices.GetByNameAsync(filtroViewModel.MaterialOption); filtroModel.SetMaterialOption(materialModel.Id); } return(filtroModel); }
public async Task <IEnumerable <ProdutoViewModel> > GetFilterTermoAsync(FiltroProdutoViewModel filtroViewModel, string statusAtivacao) { return(await ToListViewModel( await _domainService.GetListByTermoAsync( await ToFilterModel(filtroViewModel).ConfigureAwait(false), statusAtivacao)).ConfigureAwait(false)); }
public async Task <IEnumerable <ProdutoViewModel> > FilterAndOrderAsync(FiltroProdutoViewModel filtroViewModel, string statusAtivacao) { return(await ToListViewModel(await _domainService.FilterAndOrderListAsync(new List <ProdutoModel>(), await ToFilterModel(filtroViewModel).ConfigureAwait(false), statusAtivacao).ConfigureAwait(false))); }
public async Task <ActionResult> Index(List <ProdutoViewModel> produtoViewModel, FiltroProdutoViewModel filtro, int pagina = 1) { IEnumerable <ProdutoViewModel> produtos; if (produtoViewModel.Any()) { produtos = produtoViewModel; } else { produtos = await _produtoAppServices.GetAllAsync("AT"); } var statusModel = "Success"; if (TempData["Error"] != null) { statusModel = "Error"; ModelState.AddModelError(string.Empty, TempData["Error"].ToString()); } var produtoViewModels = await produtos.ToList().ToPagedListAsync(pagina, 24); var produtoCorViewModel = await _produtoCorAppServices.GetAllGroupedAsync("AT"); var marcaViewModel = await _marcaAppServices.GetAllAsync(); var materialViewModel = await _materialAppServices.GetAllAsync(); return(View("Index", new ProdutoIndexViewModel(produtoViewModels, produtoCorViewModel, marcaViewModel, materialViewModel, filtro, statusModel))); }