// // 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)); }
// 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)); }