Пример #1
0
        public IActionResult _UsarCodigoPartial(string cod)
        {
            CodigoPromocional codigo = _facade.Query <CodigoPromocional>(c => c.Codigo == cod && !c.Inativo,
                                                                         c => c).FirstOrDefault();

            CodigoPromocionalModel vm = null;

            if (codigo == null)
            {
                ViewData["Error"] = "O código não existe.";
            }
            else
            {
                if (codigo.UsosRestantes <= 0)
                {
                    ViewData["Error"] = "Esse código expirou. Tente outro código. \n";
                }
                else
                {
                    _vh = new CodigoPromocionalViewHelper
                    {
                        Entidades = new Dictionary <string, object>
                        {
                            [typeof(CodigoPromocional).Name] = codigo
                        }
                    };
                    vm = (CodigoPromocionalModel)_vh.ViewModel;
                }
            }

            return(PartialView("../CarrinhoCompra/PartialViews/_UsarCodigoPartial", vm));
        }
        protected override void ToViewModel()
        {
            PaginaFinalizarCompraModel vm = new PaginaFinalizarCompraModel();

            Endereco endereco = (Endereco)Entidades[typeof(Endereco).Name];
            IDictionary <CartaoCredito, double> cartoes = (IDictionary <CartaoCredito, double>)Entidades[typeof(IDictionary <CartaoCredito, double>).Name];
            Cupom             cupom       = null;
            CodigoPromocional codigoPromo = null;

            if (Entidades.ContainsKey(typeof(Cupom).Name))
            {
                cupom = (Cupom)Entidades[typeof(Cupom).Name];
            }
            if (Entidades.ContainsKey(typeof(CodigoPromocional).Name))
            {
                codigoPromo = (CodigoPromocional)Entidades[typeof(CodigoPromocional).Name];
            }
            Carrinho carrinho = (Carrinho)Entidades[typeof(Carrinho).Name];

            CarrinhoViewHelper carrinhoVh = new CarrinhoViewHelper
            {
                Entidades = new Dictionary <string, object>
                {
                    [typeof(Carrinho).Name] = carrinho
                }
            };

            vm.Pedido = (CarrinhoModel)carrinhoVh.ViewModel;

            DetalhesEnderecoViewHelper enderecoVh = new DetalhesEnderecoViewHelper
            {
                Entidades = new Dictionary <string, object>
                {
                    [typeof(Endereco).Name] = endereco
                }
            };

            vm.Endereco = (DetalhesEnderecoModel)enderecoVh.ViewModel;

            DetalhesCartaoViewHelper cartaoVh = new DetalhesCartaoViewHelper();

            foreach (var entry in cartoes)
            {
                cartaoVh.Entidades = new Dictionary <string, object>
                {
                    [typeof(CartaoCredito).Name] = entry.Key
                };
                vm.Cartoes[(DetalhesCartaoModel)cartaoVh.ViewModel] = entry.Value;
            }

            if (cupom != null)
            {
                CupomViewHelper cupomVh = new CupomViewHelper
                {
                    Entidades = new Dictionary <string, object>
                    {
                        [typeof(Cupom).Name] = cupom
                    }
                };
                vm.Cupom              = (CupomModel)cupomVh.ViewModel;
                vm.Pedido.PrecoTotal -= vm.Cupom.Valor;
            }

            if (codigoPromo != null)
            {
                CodigoPromocionalViewHelper codigoVh = new CodigoPromocionalViewHelper
                {
                    Entidades = new Dictionary <string, object>
                    {
                        [typeof(CodigoPromocional).Name] = codigoPromo
                    }
                };
                vm.CodigoPromo        = (CodigoPromocionalModel)codigoVh.ViewModel;
                vm.Pedido.PrecoTotal -= vm.CodigoPromo.Valor;
            }

            vm.Frete = (double)Entidades[nameof(Pedido.Frete)];

            _viewModel = vm;
        }