public IActionResult EnviarPedido(CartaoDeCredito cartaoUm, CartaoDeCredito cartaoDois, byte multiplosCartoes) { if (HttpContext.Session.Get <int>("idUsuario") > 0) { Carrinho carrinho; Pedido pedido; carrinho = SessionHelper.Get <Carrinho>(HttpContext.Session, "carrinho"); pedido = new Pedido { MultiplosCartoes = carrinho.MultiplosCartoes = multiplosCartoes, ItensPedido = carrinho.ItensPedido, CuponsTroca = carrinho.CuponsTroca, CupomPromocional = carrinho.CupomPromocional, ValorFrete = carrinho.ValorFrete, CartaoUm = carrinho.CartaoUm = cartaoUm, CartaoDois = carrinho.CartaoDois = cartaoDois, EnderecoId = carrinho.EnderecoId, CupomTrocaGerado = new Cupom(), UsuarioId = HttpContext.Session.Get <int>("idUsuario") }; //Verificacao de itens do carrinho VerificacaoItensTempoLimiteAtingido verificacaoItens = new VerificacaoItensTempoLimiteAtingido(); string retornoMsg = verificacaoItens.VerificarItensCarrinho(carrinho); if (retornoMsg != null) { SessionHelper.Set <Carrinho>(HttpContext.Session, "carrinho", new Carrinho()); HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(retornoMsg)); return(RedirectToAction("index", "carrinho")); } SessionHelper.Set <Carrinho>(HttpContext.Session, "carrinho", carrinho); resultado = new Facade().Salvar(pedido);//Salva o pedido if (!string.IsNullOrEmpty(resultado.Msg)) { string msg = resultado.Msg; HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(msg)); return(RedirectToAction("Index", "Carrinho")); } resultado = new Facade().Alterar(pedido);//Alterar o pedido if (!string.IsNullOrEmpty(resultado.Msg)) { string msg = resultado.Msg; HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(msg)); return(RedirectToAction("Index", "Carrinho")); } if (pedido.Status == 'A') { string msg; if (pedido.CupomTrocaGerado.Id > 0) { msg = "Pedido " + pedido.Id + " realizado com sucesso.\nCupom de troca gerado no valor de R$ " + pedido.CupomTrocaGerado.Valor + "."; } else { msg = "Pedido " + pedido.Id + " realizado com sucesso"; } char statusPedido = 'A'; HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(msg)); HttpContext.Session.Set("statusPedido", statusPedido); } else if (pedido.Status == 'R') { string msg = "Pedido " + pedido.Id + " Recusado.\n Contate a operadora de cartão de crédito"; char statusPedido = 'R'; HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(msg)); HttpContext.Session.Set("statusPedido", statusPedido); } else { string msg = "Pedido efetuado com sucesso"; char statusPedido = 'P'; HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(msg)); HttpContext.Session.Set("statusPedido", statusPedido); } } else { string msg = "Faça login para continuar"; HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(msg)); } return(RedirectToAction("Index", "Carrinho")); }
public IActionResult AdicionarItem(int id) { List <Livro> livros; List <Estoque> estoqueProds; Carrinho carrinho; Estoque estoque; ItemPedido itemPedido = new ItemPedido(); Livro livro = new Livro { Id = id }; resultado = new Facade().Consultar(livro); if (!string.IsNullOrEmpty(resultado.Msg)) { TempData["MsgErro"] = resultado.Msg; return(PartialView("_produtos")); } else { livros = new List <Livro>(); foreach (var item in resultado.Entidades) { livros.Add((Livro)item); } itemPedido.Qtde = 1; itemPedido.Produto = livros.FirstOrDefault(); carrinho = SessionHelper.Get <Carrinho>(HttpContext.Session, "carrinho"); if (carrinho == null) { carrinho = new Carrinho(); HttpContext.Session.Set("statusPedido", '\0'); } //Verificacao de itens do carrinho VerificacaoItensTempoLimiteAtingido verificacaoItens = new VerificacaoItensTempoLimiteAtingido(); string msg = verificacaoItens.VerificarItensCarrinho(carrinho); if (msg != null) { SessionHelper.Set <Carrinho>(HttpContext.Session, "carrinho", new Carrinho()); HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(msg)); return(RedirectToAction("index", "carrinho")); } ItemPedido itemPed = carrinho.ItensPedido.Find(x => x.Produto.Id == id);//Verifica se o produto ja esta no carrinho if (itemPed != null) {//Encontrou produto no carrinho estoque = new Estoque { ProdutoId = id }; resultado = new Facade().Consultar(estoque);//Consulta estoque if (!string.IsNullOrEmpty(resultado.Msg)) { TempData["MsgErro"] = resultado.Msg; return(PartialView("_produtos")); } else { estoqueProds = new List <Estoque>(); foreach (var item in resultado.Entidades) { estoqueProds.Add((Estoque)item); } if (estoqueProds.FirstOrDefault().Qtde >= carrinho.ItensPedido[carrinho.ItensPedido.IndexOf(itemPed)].Qtde + 1) { carrinho.ItensPedido[carrinho.ItensPedido.IndexOf(itemPed)].Qtde += 1; carrinho.QtdeTotalItens += 1; } } } else { //verificar se produto está na lista de itens bloqueados resultado = new Facade().Consultar(new ItemBloqueado { Id = id }); if (resultado.Msg != null) { ViewBag.Mensagem = resultado.Msg; return(RedirectToAction("Index", "Carrinho")); } else if (resultado.Entidades.Count > 0) { string retornoMsg = "Produto bloqueado temporariamente"; HttpContext.Session.Set("mensagemCarrinho", Encoding.UTF8.GetBytes(retornoMsg)); return(RedirectToAction("Index", "Carrinho")); } itemPedido.HoraInclusao = DateTime.Now;//Grava a hora da insercao desse produto no carrinho estoque = new Estoque { ProdutoId = id }; resultado = new Facade().Consultar(estoque);//Consulta estoque if (!string.IsNullOrEmpty(resultado.Msg)) { TempData["MsgErro"] = resultado.Msg; return(PartialView("_produtos")); } else { estoqueProds = new List <Estoque>(); foreach (var item in resultado.Entidades) { estoqueProds.Add((Estoque)item); } if (estoqueProds.FirstOrDefault().Qtde >= 1) { carrinho.ItensPedido.Add(itemPedido); carrinho.QtdeTotalItens += 1; carrinho.HoraUltimaInclusao = DateTime.Now;//Grava a hora da ultima insercao no carrinho resultado = new Facade().Salvar(new ItemBloqueado { Id = id }); if (resultado.Msg != null) { ViewBag.Mensagem = resultado.Msg; return(RedirectToAction("index", "carrinho")); } } } } SessionHelper.Set <Carrinho>(HttpContext.Session, "carrinho", carrinho); return(RedirectToAction("index", "carrinho")); } }