Exemple #1
0
        public async Task <IActionResult> EditProduto(int id)
        {
            string statusModel = null;
            var    marcas      = await _marcaAppServices.GetAllAsync();

            var materiais = await _materialAppServices.GetAllAsync();

            var listaFotos = await _produtoFotoAppServices.RetornarListaFotoInput(id);

            var cores = await _produtoCorAppServices.GetByProdutoAsync(id, null);

            var listaCores = await _produtoCorAppServices.RetornarListaDeCorDoProduto(id, null);

            var produto = await _produtoAppServices.GetByIdAsync(id);

            var corSelect = await _corAppServices.GetAllAsync();

            if (TempData["Error"] != null)
            {
                statusModel = "Error";
                ModelState.AddModelError(string.Empty, TempData["Error"].ToString());
            }
            else if (TempData["Success"] != null)
            {
                statusModel = "Success";
                ModelState.AddModelError(string.Empty, TempData["Success"].ToString());
            }

            return(View("Edit", new ProdutoEditViewModel(marcas, materiais, listaFotos, cores, listaCores, corSelect, produto, id, statusModel)));
        }
        public async Task <IActionResult> Details(int id, int idCor, string returnUrl = null)
        {
            var produtoViewModel = await _produtoAppServices.GetByIdAsync(id);

            var produtoFotoViewModel = await _produtoFotoAppServices.GetFotosByCorAsync(idCor);

            var produtoCorViewModel = await _produtoCorAppServices.GetByProdutoAsync(id, "AT");

            var lancamento = await _produtoAppServices.GetCategoryForHomeAsync("lancamento", 0);

            var logado = _signInManager.IsSignedIn(User);

            var statusModel = "success";

            if (TempData["Error"] != null)
            {
                statusModel = "Error";
                ModelState.AddModelError(string.Empty, TempData["Error"].ToString());
            }
            else if (TempData["Success"] != null)
            {
                statusModel = "Success";
                ModelState.AddModelError(string.Empty, TempData["Success"].ToString());
            }

            returnUrl ??= Request.Headers["Referer"].ToString();

            return(View(new ProdutoDetailsViewModel(produtoViewModel, produtoFotoViewModel, produtoCorViewModel, statusModel, logado, lancamento, idCor, returnUrl)));
        }
        public async Task <ActionResult> GetCorProduto(string idProduto)
        {
            var identificacao = idProduto.Split(',')[1].Trim();

            var id = idProduto.Split(',')[0].Trim();

            if (identificacao != "produto")
            {
                return(Content(string.Join("", "")));
            }

            try
            {
                var produtoCor = await _produtoCorAppServices.GetByProdutoAsync(int.Parse(id), null);

                var result = (from t in produtoCor
                              select new
                {
                    Cores = $"<option value= {t.Id}> {t.Descricao} </option>"
                }).ToList();

                return(Content(string.Join("", result)));
            }
            catch (Exception)
            {
                TempData["ErrorModel"] = "Erro ao atualizar pedido";
            }

            return(Content(string.Join("", "")));
        }
        public async Task <IViewComponentResult> InvokeAsync(ProdutoViewModel produtoViewModel, bool exibirPreco)
        {
            var logado = _signInManager.IsSignedIn(new ClaimsPrincipal(User));

            var produtoCorViewModel = await _produtoCorAppServices.GetByProdutoAsync(produtoViewModel.Id, "AT");

            var quantidadeCores = produtoCorViewModel.Count();

            var quantidadeCoresIndisponiveis = produtoCorViewModel.Count(item => item.Estoque == 0);

            if (quantidadeCores == quantidadeCoresIndisponiveis)
            {
                produtoViewModel.StatusProduto = "indisponivel";
            }

            return(View(new ProdutoComponentViewModel(produtoViewModel, produtoCorViewModel, logado, exibirPreco)));
        }