public ActionResult ArmazenaCompra(CadastroArmazenamentoModel model) { if (model.Quantidade > 0) { ProdutoDto pDto = (ProdutoDto)Session["Produto"]; if (model.Quantidade <= pDto.Quantidade) { EstoqueDados eDados = new EstoqueDados(); if (eDados.ObterPorIdComposto(pDto.Produto.Id, model.IdFreezer) != null) { Estoque e = eDados.ObterPorIdComposto(pDto.Produto.Id, model.IdFreezer); e.Quantidade += model.Quantidade; eDados.Alterar(e); } else { FreezerDados fDados = new FreezerDados(); Estoque e = new Estoque(); e.Produto = pDto.Produto; e.Freezer = fDados.ObterPorId(model.IdFreezer); e.Quantidade = model.Quantidade; if (e.Produto != null && e.Freezer != null) { eDados.Inserir(e); } else { ViewBag.Mensagem = "Você deve preencher todo o formulário."; if (Session["Lista"] != null) { CompraModel cm = new CompraModel(); cm.ListagemProdutosCompra = (List <ProdutoDto>)Session["Lista"]; return(View("ArmazenamentoCompra", cm)); } } } pDto.Quantidade = pDto.Quantidade - model.Quantidade; Session["Produto"] = pDto; List <ProdutoDto> listaProd = (List <ProdutoDto>)Session["Lista"]; List <ProdutoDto> listaProd2 = new List <ProdutoDto>(); Session["Lista"] = null; foreach (ProdutoDto p in listaProd) { if (p.Produto.Id != pDto.Produto.Id) { listaProd2.Add(p); } } if (pDto.Quantidade != 0) { listaProd2.Add(pDto); } Session["Lista"] = listaProd2; } else { ViewBag.Mensagem = "A quantidade que você tentou inserir não condiz com a compra efetuada."; if (Session["Lista"] != null) { CompraModel cm = new CompraModel(); cm.ListagemProdutosCompra = (List <ProdutoDto>)Session["Lista"]; return(View("ArmazenamentoCompra", cm)); } } } else { ViewBag.Mensagem = "A quantidade digitada é inválida."; if (Session["Lista"] != null) { CompraModel cm = new CompraModel(); cm.ListagemProdutosCompra = (List <ProdutoDto>)Session["Lista"]; return(View("ArmazenamentoCompra", cm)); } } if (Session["Lista"] != null) { return(RedirectToAction("ArmazenamentoCompra")); } else { return(RedirectToAction("InstanciaConsulta")); } }