Exemple #1
0
        public ActionResult Continuar(Models.CheckoutDetalhesViewModel detalhes)
        {
            if (ModelState.IsValid)
            {
                if (detalhes.CcValidade <= DateTime.Now)
                {
                    ModelState.AddModelError("", "Cartão de crédito expirado");
                }

                if (ModelState.IsValid)
                {
                    var ordem = new Ordem
                    {
                        DataDeCriacao = DateTime.Now,
                        DataDeEntrega = DateTime.Now.AddDays(5),
                        ClienteId     = User.Identity.GetUserId(),
                        Endereco      = detalhes.Endereco,
                        CEP           = detalhes.CEP,
                        CcNumero      = detalhes.CcNumero,
                        CcValidade    = detalhes.CcValidade,
                        OrdemItems    = CarrinhoDeCompras.Itens.Values.Select(i => new OrdemItem
                        {
                            Preco      = i.PrecoTotal,
                            ProdutoId  = i.ProdutoId,
                            Quantidade = i.Quantidade
                        }).ToArray()
                    };

                    _ctx.Ordens.Add(ordem);
                    _ctx.SaveChanges();

                    CarrinhoDeCompras.Limpar();

                    return(RedirectToAction("CompraRealizadaComSucesso", new { ordemId = ordem.Id }));
                }
            }

            var errors = new List <ModelError>();

            foreach (var modelState in ViewData.ModelState.Values)
            {
                foreach (ModelError error in modelState.Errors)
                {
                    errors.Add(error);
                }
            }

            return(View(detalhes));
        }