//
        // GET: /Store/AddToCart/5
        public ActionResult Adicionar(int id)
        {
            // Retrieve the album from the database
            var mangaAdicionado = lojaDb.Mangas
                                  .Single(manga => manga.MangaId == id);
            // Add it to the shopping cart
            var carrinho = CarrinhoCompra.ObterCarrinho(this.HttpContext);

            carrinho.Adicionar(mangaAdicionado);
            // Go back to the main store page for more shopping
            return(RedirectToAction("Index"));
        }
        //
        // GET: /CarrinhoCompra/
        public ActionResult Index()
        {
            var carrinho = CarrinhoCompra.ObterCarrinho(this.HttpContext);
            // Set up our ViewModel
            var viewModel = new CarrinhoCompraViewModel
            {
                CartItems     = carrinho.ObterCarrinhoItens(),
                CarrinhoTotal = carrinho.ObterTotal()
            };

            // Return the view
            return(View(viewModel));
        }
Example #3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });


            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            //**********************************************************************************************************************************************************
            //**********************************************************************************************************************************************************

            //registrando o contexto como um serviço para a aplicação - quando a aplicação é executada, um serviço e criado para o contexto (sessão com o banco de dados)
            services.AddDbContext <AplicacaoDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("ConnectionSuperPetShop")));

            //**********************************************************************************************************************************************************
            //**********************************************************************************************************************************************************
            //Registrando um serviço para os tipos do Identity
            //o metodo AddEntityFrameworkStores adiciona a implementação da classe de sessão com o banco (Context), armazenando os tipos do Identity
            // o método  AddDefaultTokenProviders inclui para o identity recursos de fornecimento de tokens par auxiliar na troca de senha, email...
            //services.AddIdentity<IdentityUser, IdentityRole>().AddEntityFrameworkStores<AplicacaoDbContext>().AddDefaultTokenProviders();

            //Registrando um serviço para as interfaces, fornecendo ao controlador uma instancia da classe de implementação da interface

            //Transiente - o serviço é criado fornecendo um objeto, a cada solicitação.
            services.AddTransient <ICategoriaRepository, CategoriaRepository>();
            services.AddTransient <IProdutoRepository, ProdutoRepository>();
            services.AddTransient <IClienteRepository, ClienteRepository>();
            services.AddTransient <IPedidoRepository, PedidoRepository>();
            services.AddTransient <IUsuarioRepository, UsuarioRepository>();


            //Singleton - o serviço é criado uma unica vez para todas as requisições (O mesmo objeto para todas as requisições)
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            //Scoped - O serviço cria o objeto para cada requisição (objeto por requisição, individual)
            services.AddScoped(carrinhoCompra => CarrinhoCompra.ObterCarrinho(carrinhoCompra));

            //**********************************************************************************************************************************************************
            //**********************************************************************************************************************************************************
            services.AddMemoryCache();
            services.AddSession();
        }
        public ActionResult RemoveFromCart(int id)
        {
            // Remove the item from the cart
            var carrinho = CarrinhoCompra.ObterCarrinho(this.HttpContext);
            // Get the name of the album to display confirmation
            string mangaNome = lojaDb.Carrinhos
                               .Single(item => item.CarrinhoId == id).Manga.Titulo;
            // Remove from cart
            int itemCount = carrinho.Remover(id);
            // Display the confirmation message
            var results = new RemoveCarrinhoCompraViewModel
            {
                Mensagem = Server.HtmlEncode(mangaNome) +
                           " has been removed from your shopping cart.",
                CarrinhoTotal    = carrinho.ObterTotal(),
                CarrinhoContagem = carrinho.ObterContagem(),
                ItemContagem     = itemCount,
                DeleteId         = id
            };

            return(Json(results));
        }