예제 #1
0
        public async Task <IActionResult> DadosPagamento()
        {
            var enderecosUsuario = await _enderecoStore.ObterDoUsuario(User.Identity.Name);

            var carrinho = await _carrinhoStore.ObterCarrinho(User.Identity.Name);

            if (carrinho == null)
            {
                TempData["ERRO"] = "Não há itens no carrinho";
                return(RedirectToAction("Index", "Carrinho"));
            }
            if (!carrinho.FreteSelecionado())
            {
                TempData["ERRO"] = "Selecione o frete";
                return(RedirectToAction("Index"));
            }
            var cartao = CartaoCredito.Obter().Generate();

            return(View(new CheckoutViewModel()
            {
                EnderecosUsuario = enderecosUsuario,
                Carrinho = carrinho,
                CartaoCredito = cartao
            }));
        }
예제 #2
0
        public async Task <IActionResult> Index()
        {
            var carrinho = await _carrinhoStore.ObterCarrinho(User.Identity.Name);

            var fretes = await _freteService.CalcularCarrinho(carrinho, await _geoposicaoService.GeolocalizarUsuario());

            return(View(new CarrinhoViewModel()
            {
                Carrinho = carrinho,
                Fretes = fretes
            }));
        }
예제 #3
0
        public async Task AdicionarProduto(string usuario, Produto produto, int quantidade)
        {
            var carrinho = await _carrinhoStore.ObterCarrinho(usuario);

            if (carrinho == null)
            {
                carrinho = await _carrinhoStore.CriarCarrinho(usuario);
            }
            var freteEscolhido = carrinho.Frete?.Modalidade;

            if (carrinho.Possui(produto))
            {
                var item = carrinho.AtualizarQuantidade(produto.NomeUnico, quantidade);
                if (freteEscolhido.IsPresent())
                {
                    await _carrinhoStore.AtualizarItemCarrinho(item, carrinho);
                }
            }
            else
            {
                var item = carrinho.AdicionarProduto(produto, quantidade);
                await _carrinhoStore.AdicionarItemAoCarrinho(carrinho, item);
            }
        }
예제 #4
0
        public async Task <IActionResult> Index()
        {
            var carrinho = await _carrinhoStore.ObterCarrinho(User.Identity.Name);

            var cargodoUsuario = User.Claims.FirstOrDefault(f => f.Type.Equals("Cargo"));

            var at = await _httpContextAccessor.HttpContext.GetTokenAsync("access_token");

            var fretes = await _freteService.CalcularCarrinho(carrinho, await _geoposicaoService.GeolocalizarUsuario(), at);

            return(View(new CarrinhoViewModel()
            {
                Carrinho = carrinho,
                Fretes = fretes
            }));
        }
예제 #5
0
 public async Task <IViewComponentResult> InvokeAsync()
 {
     return(View(await _carrinhoStore.ObterCarrinho(User.Identity.Name)));
 }