示例#1
0
        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);
        }
示例#2
0
        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));
        }
示例#3
0
        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));
        }
示例#4
0
        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);
        }
示例#5
0
        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));
        }
示例#6
0
        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));
        }
示例#7
0
        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);
        }
示例#8
0
 public async Task <IEnumerable <ProdutoViewModel> > GetFilterTermoAsync(FiltroProdutoViewModel filtroViewModel, string statusAtivacao)
 {
     return(await ToListViewModel(
                await _domainService.GetListByTermoAsync(
                    await ToFilterModel(filtroViewModel).ConfigureAwait(false), statusAtivacao)).ConfigureAwait(false));
 }
示例#9
0
 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)));
 }
示例#10
0
        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)));
        }