Example #1
0
 public Form1()
 {
     //inicializacao de componentes
     InitializeComponent();
     dados            = new CartaoDao();
     timerCom.Enabled = true;
     AtualizarDisplay();
 }
        public ActionResult FinalizarPedido(Pedido pedido)//idcartao1 e idenderecoentrega
        {
            Usuario usuario = (Usuario)Session["Usuario"] ?? new Usuario();

            try
            {
                pedido.IdCliente = usuario?.Id ?? 0;
                pedido.Bebidas   = usuario?.Carrinho.Bebidas ?? new List <Bebida>();

                new PedidoDao().Cadastrar(pedido);

                int pedidoId = new PedidoDao().ObterUltimoIdInserido();

                new ProcedimentoTrocaStatus().EmProcessamento(pedidoId);

                Bandeira bandeira = new CartaoDao().ConsultarPorId(pedido.IdCartao1).Bandeira;

                if (new ValidadorCompra(bandeira).ValidarCompra())
                {
                    new ProcedimentoTrocaStatus().Aprovada(pedidoId);
                }
                else
                {
                    new ProcedimentoTrocaStatus().Reprovada(pedidoId);
                }
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Error", "Home"));
            }



            usuario.Carrinho.Bebidas.Clear();

            Session["Usuario"] = usuario;

            return(RedirectToAction("Index", "Clientes"));
        }
        public ActionResult Checkout()
        {
            Usuario usuario = (Usuario)Session["Usuario"];

            if (usuario == null)
            {
                return(RedirectToAction("Login", "Usuarios"));
            }

            var listaEnderecos = new EnderecoDao().ConsultarPorCliente(usuario.Id);
            var listaCartoes   = new CartaoDao().ConsultarPorCliente(usuario.Id);

            List <SelectListItem> ddlEnderecos = new List <SelectListItem>
            {
                new SelectListItem
                {
                    Text  = "Selecione um endereço",
                    Value = "0"
                }
            };
            List <SelectListItem> ddlCartoes = new List <SelectListItem>
            {
                new SelectListItem
                {
                    Text  = "Selecione um cartão",
                    Value = "0"
                }
            };

            listaEnderecos.ForEach(x => ddlEnderecos.Add(new SelectListItem
            {
                Text     = string.Concat(x.Descricao, " - ", x.Logradouro, ", ", x.Numero, " ", x.Complemento),
                Value    = x.Id.ToString(),
                Selected = x.Entrega
            }));
            listaCartoes.ForEach(x => ddlCartoes.Add(new SelectListItem
            {
                Text     = string.Concat(x.Bandeira, " - final ", x.Numero.Substring(x.Numero.Length - 4)),
                Value    = x.Id.ToString(),
                Selected = x.Preferencial
            }));

            ViewBag.Enderecos = ddlEnderecos;
            ViewBag.Cartoes   = ddlCartoes;

            Cliente cliente = new Cliente
            {
                Carrinho = usuario?.Carrinho ?? new Carrinho()
            };

            Pedido pedido = new Pedido
            {
                Cliente = cliente,
                Bebidas = ((Usuario)Session["Usuario"])?.Carrinho?.Bebidas ?? new List <Bebida>()
            };

            //verifica se os itens ainda existem no estoque
            bool BebidasOK = new EstoqueDao().VerificaItensDisponiveis(pedido.Bebidas);

            if (!BebidasOK)
            {
                //retorna para o carrinho informando que o estoque foi atualizado
                return(RedirectToAction("Index", "Carrinho", new { i = 1 }));
            }

            return(View(pedido));
        }