public ActionResult CartSummary()
        {
            var cart = ShoppingCartRepository.GetCart(this.HttpContext);

            ViewData["CartCount"] = cart.GetCount();
            return(PartialView("CartSummary"));
        }
        public ActionResult RemoveFromCart(int id)
        {
            // Remove the item from the cart
            var    cart    = ShoppingCartRepository.GetCart(this.HttpContext);
            string cartIds = cart.GetCartId();

            string productName = repositoryCart.GetFirstOrDefault(id).tblProduct.ProductName;

            // Get the name of the product to display confirmation
            //string productName = uow.GetRepositoryInstance<tblCart>().GetProduct().DistinctBy(id).tblProduct.ProductName;


            // Remove from cart
            int itemCount = cart.RemoveFromCart(cartIds, id);

            // Display the confirmation message
            var results = new ShoppingCartRemoveViewModel
            {
                Message = Server.HtmlEncode(productName) +
                          " has been removed from your shopping cart.",
                CartTotal = cart.GetTotal(),
                CartCount = cart.GetCount(),
                ItemCount = itemCount,
                DeleteId  = id
            };

            return(Json(results));
        }
        public async Task <ActionResult> AddressAndPayment()
        {
            Console.WriteLine("AddresPaymet - New Order");
            var user = await _userManager.GetUserAsync(HttpContext.User);


            var cart   = ShoppingCartRepository.GetCart(HttpContext);
            var CartId = SessionHelper.GetShoppingCartId(HttpContext);
            var items  = cart.GetCartItems(CartId);

            Order order = new Order();

            decimal total = 0;

            foreach (var item in items.CartItems)
            {
                total += item.GetAlbum().Price;
            }
            order.Total = total;
            // check to migrate
            CheckCartId(user.UserName);
            if (user != null)
            {
                order.Email    = user.Email;
                order.Username = user.UserName;
                order.Phone    = user.PhoneNumber;
            }
            return(View(order));
        }
        public ActionResult AddressAndPayment(Order orderVM)
        {
            Console.WriteLine("AddresPaymet - Checking model state");
            if (ModelState.IsValid)
            {
                var cart  = ShoppingCartRepository.GetCart(HttpContext);
                var order = cart.CreateOrder(orderVM);

                if (order != null)
                {
                    Console.WriteLine("AddresPaymet - Created with OrderId: " + order.OrderId);
                    return(RedirectToAction("Complete", new { id = order.OrderId }));
                }
                else
                {
                    Console.WriteLine("AddresPaymet - Order Rejected, check API logs");
                    return(Ok(orderVM));
                }
            }
            else
            {
                Console.WriteLine("AddresPaymet - Invalid Model");
                return(Ok(orderVM));
            }
        }
Exemplo n.º 5
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <DataContext>(x => x.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))
                                                .ConfigureWarnings(warnings =>
            {
                warnings.Ignore(CoreEventId.IncludeIgnoredWarning);
            }));

            services.AddCors();
            services.AddMvc(options =>
            {
                var jsonInputFormatter = options.InputFormatters.OfType <JsonInputFormatter>().First();
                jsonInputFormatter.SupportedMediaTypes.Add("multipart/form-data");
            }).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddMemoryCache();
            services.AddSession();


            services.AddAutoMapper();
            services.AddScoped <ICakeRepository, CakeRepository>();
            services.AddScoped <IUnitOfWork, UnitOfWork>();
            services.AddScoped <ICategoryRepository, CategoryRepository>();
            services.AddScoped <IAuthRepository, AuthRepository>();
            services.AddScoped <IUserRepository, UserRepository>();
            services.AddScoped <IShoppingCartRepository, ShoppingCartRepository>();
            services.AddScoped <IOrderRepository, OrderRepository>();
            services.AddScoped <IPhotoRepository, PhotoRepository>();
            services.AddScoped <IOrderRepository, OrderRepository>();
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddScoped(sp => ShoppingCartRepository.GetCart(sp));
        }
        public IActionResult RemoveFromCart([FromBody] CartDeleteViewModel c)
        {
            Console.WriteLine("ShoppingCart RemoveFromCart, Id: " + c.ShoppingCartId);
            // Remove the item from the cart
            var cart = ShoppingCartRepository.GetCart(storeDB);

            // Get the name of the album to display confirmation
            var record = storeDB.Carts
                         .Single(item => item.RecordId == c.RecordId);

            Console.WriteLine("AlbumId: " + record.AlbumId);
            var albumName = new AlbumRepository(storeDB).Get(record.AlbumId).Title;

            Console.WriteLine("Album title: " + albumName);
            // Remove from cart
            int itemCount = cart.RemoveFromCart(c);

            Console.WriteLine("ShoppingCart Controller, itemCount: " + itemCount);
            // Display the confirmation message
            var results = new ShoppingCartRemoveViewModel
            {
                Message = albumName +
                          " has been removed from your shopping cart.",
                CartTotal = cart.GetTotal(c.ShoppingCartId),
                CartCount = cart.GetCount(c.ShoppingCartId),
                ItemCount = itemCount,
                DeleteId  = c.RecordId
            };

            return(Json(results));
        }
        public ActionResult RemoveFromCart(int id)
        {
            // Remove the item from the cart
            Console.WriteLine("ShoppingCartsController - RemoveFromCart, RecordId: " + id);
            var cart = ShoppingCartRepository.GetCart(HttpContext);

            return(Json(cart.RemoveFromCart(id)));
        }
        public void MigrateShoppingCart(string UserName)
        {
            //Associate shopping cart items with logged-in user
            var cart = ShoppingCartRepository.GetCart(this.HttpContext);

            cart.MigrateCart(UserName);
            Session[ShoppingCartRepository.CartSessionKey] = UserName;
        }
        public IActionResult MigrateCart([FromBody] MigrateCardViewModel model)
        {
            var cart = ShoppingCartRepository.GetCart(storeDB);

            cart.MigrateCart(model);

            return(Ok());
        }
Exemplo n.º 10
0
        public void AddToCart(int id, int qty)
        {
            var cart = ShoppingCartRepository.GetCart(this.HttpContext);

            cart.AddToCart(unitOfWork.AlbumRepository.GetByID(id), qty);

            TempData["AddToCart"] = string.Format("You added {0} of {1} to your cart", qty, unitOfWork.AlbumRepository.GetByID(id).Title);
        }
Exemplo n.º 11
0
        public ActionResult CartSummary()
        {
            var cart = ShoppingCartRepository.GetCart(this.HttpContext);

            ViewBag.CartItems = cart.GetNumberOfCartItems();

            return(PartialView("_CartSummary"));
        }
        public IActionResult AddToCart([FromBody] CartViewModel c)
        {
            Console.WriteLine("ShoppingCart AddToCard, Id: " + c.CartId);
            var cart   = ShoppingCartRepository.GetCart(storeDB);
            var result = cart.AddToCart(c);

            Console.WriteLine(result);
            // Go back to the main store page for more shopping
            return(Ok(result));
        }
        // GET: ShoppingCart
        public ActionResult Index()
        {
            var cart   = ShoppingCartRepository.GetCart(HttpContext);
            var CartId = SessionHelper.GetShoppingCartId(HttpContext);

            Console.WriteLine("ShoppingCartsController Index - CartId: " + CartId);
            var items = cart.GetCartItems(CartId);

            // Return the view
            return(View(items));
        }
        public void borrarSesionCarrito()
        {
            var cart   = ShoppingCartRepository.GetCart(HttpContext);
            var CartId = SessionHelper.GetShoppingCartId(HttpContext);
            var items  = cart.GetCartItems(CartId);

            foreach (var item in items.CartItems)
            {
                this.RemoveFromCart(item.RecordId);
            }
        }
Exemplo n.º 15
0
        // GET: ShoppingCart
        public ActionResult Index()
        {
            var cart  = ShoppingCartRepository.GetCart(this.HttpContext);
            var model = new ShoppingCartViewModel
            {
                CartItems = cart.GetCartItems(),
                CartTotal = cart.GetTotal()
            };

            return(View(model));
        }
        private void CheckCartId(string UserName)
        {
            Console.WriteLine("Checking CartId");
            var currentCartId = SessionHelper.GetShoppingCartId(HttpContext);

            if (currentCartId != UserName)
            {
                SessionHelper.SetShoppingCartId(HttpContext, UserName);
                var cart = ShoppingCartRepository.GetCart(HttpContext);
                cart.MigrateCart(currentCartId, UserName);
            }
        }
Exemplo n.º 17
0
        public decimal UpdateQuantity(int id, int qty)
        {
            var cart = ShoppingCartRepository.GetCart(this.HttpContext);

            cart.UpdateCart(unitOfWork.AlbumRepository.GetByID(id), qty);

            var model = new ShoppingCartViewModel
            {
                CartItems = cart.GetCartItems(),
                CartTotal = cart.GetTotal()
            };

            return(model.CartTotal);
        }
        //
        // GET: /ShoppingCart/AddToCart/5
        public ActionResult AddToCart(int id)
        {
            // Retrieve the product from the database
            //var addedProduct = repositoryProduct.GetProduct().Single(product => product.ID == id);
            var addedProduct = repositoryProduct.GetFirstOrDefault(id);

            // Add it to the shopping cart
            var cart = ShoppingCartRepository.GetCart(this.HttpContext);

            cart.AddToCart(addedProduct);

            // Go back to the main product page for more shopping
            return(RedirectToAction("Index", "Home"));
        }
Exemplo n.º 19
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 =>
            {
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            //services.AddDbContext<ApplicationDbContext>(options =>
            //    options.UseSqlServer(
            //        Configuration.GetConnectionString("DefaultConnection")));
            //services.AddDefaultIdentity<IdentityUser>()
            //    .AddRoles<IdentityRole>()
            //    .AddEntityFrameworkStores<ApplicationDbContext>();

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

            //services.AddMvc();
            services.AddScoped <ICosmeticsRepository, CosmeticsRepository>();
            services.AddScoped <ICosmeticsTypeRepository, CosmeticTypeRepository>();
            services.AddScoped <IOrderRepository, OrderRepository>();
            services.AddScoped <IUnitOfWork, UnitOfWork>();
            services.AddScoped <IShoppingCart>(sp => ShoppingCartRepository.GetCart(sp));

            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            services.AddDbContext <DataContext>(ctx =>
            {
                ctx.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
            });
            services.AddAutoMapper();
            services.AddMemoryCache();

            services.AddIdentity <IdentityUser, IdentityRole>(options =>
            {
                options.User.RequireUniqueEmail        = true;
                options.User.AllowedUserNameCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
                options.Password.RequireUppercase      = false;
            })
            .AddEntityFrameworkStores <DataContext>()
            .AddDefaultTokenProviders();
            //services.AddIdentity<IdentityUser, IdentityRole>().AddEntityFrameworkStores<DataContext>().AddDefaultTokenProviders();
            services.AddSession();

            services.ConfigureApplicationCookie(options =>
            {
                options.LoginPath        = "/Account/Login";
                options.AccessDeniedPath = "/Account/AccessDenied";
            });
        }
Exemplo n.º 20
0
        public decimal RemoveItem(int id)
        {
            var cart = ShoppingCartRepository.GetCart(this.HttpContext);

            cart.RemoveFromCart(id);

            var model = new ShoppingCartViewModel
            {
                CartItems = cart.GetCartItems(),
                CartTotal = cart.GetTotal()
            };

            return(model.CartTotal);
        }
        //
        // GET: /ShoppingCart/
        public ActionResult Index()
        {
            var cart      = ShoppingCartRepository.GetCart(this.HttpContext);
            var viewmodel = new ShoppingCartViewModel
            {
                CartItems = cart.GetCartItem(),
                CartTotal = cart.GetCount(),
                Amount    = cart.GetTotal()
            };

            //string.Format("{0:F2}", viewmodel.CartTotal);
            List <tblCart> shCart = viewmodel.CartItems;

            Session["cart"] = shCart;

            ViewBag.CartItemsSum = viewmodel.CartTotal;

            string paymentAmt = viewmodel.Amount.ToString();

            Session["payment_amt"] = paymentAmt;



            string  name;
            decimal?eachPrice;
            int?    quantity;
            int?    prodID;

            foreach (var item in shCart)
            {
                name      = item.tblProduct.ProductName;
                eachPrice = item.tblProduct.Price;
                quantity  = item.Count;
                prodID    = item.ProductId;

                Session["eachprodprice"] = eachPrice;
                Session["name"]          = name;
                Session["quantity"]      = quantity;
                Session["productID"]     = prodID;
            }

            //IEnumerable<decimal?> totPriceOfEachProd += eachPrice
            //IEnumerable<string> name = cart.GetProduct().Select(x => x.tblProduct.ProductName);
            //List<tblCart> shCart = viewmodel.CartItems;
            //IEnumerable<int?> quantity = cart.GetProduct().Select(x => x.tblProduct.Quantity);


            return(View(viewmodel));
        }
        public IActionResult Index(string ShoppingCartId)
        {
            Console.WriteLine("ShoppingCart Index, Id: " + ShoppingCartId);
            var cart = ShoppingCartRepository.GetCart(storeDB);

            // Set up our ViewModel
            var viewModel = new ShoppingCartViewModel
            {
                CartItems = cart.GetCartItems(ShoppingCartId),
                CartTotal = cart.GetTotal(ShoppingCartId)
            };

            // Return the view
            return(Ok(viewModel));
        }
        //
        // GET: /Store/AddToCart/5
        public ActionResult AddToCart(int id)
        {
            Console.WriteLine("ShoppingCartsController AddTocard - AlbumId: " + id.ToString());
            // Retrieve the album from the database
            var albumRepo = new AlbumRepository();
            var album     = albumRepo.Get(id);

            if (album != null)
            {
                var cart = ShoppingCartRepository.GetCart(HttpContext);
                cart.AddToCart(album);
            }
            // Go back to the main store page for more shopping
            return(RedirectToAction("Index", "Home"));
        }
Exemplo n.º 24
0
        // GET: Checkout
        public ActionResult Index()
        {
            var cart = ShoppingCartRepository.GetCart(this.HttpContext);

            order.InitializeOrder(cart, User.Identity, this);

            var model = new CheckoutModel
            {
                OrderId      = order.GetOrderId(this.HttpContext),
                OrderDetails = order.GetOrderDetails(order.GetOrderId(this.HttpContext))
            };

            model.CartTotal = model.OrderDetails.Sum(o => o.UnitPrice * o.Quantity);

            return(View(model));
        }
        public ActionResult Create(Order order)
        {
            if (ModelState.IsValid)
            {
                order.CustomerId = User.Identity.GetUserId();
                order.Date       = DateTime.Now.ToShortDateString();
                order.Status     = Status.Pending;
                orderRepository.Add(order);

                var cart = shoppingCartRepository.GetCart(User.Identity.GetUserId());
                orderRepository.CreateOrder(cart, order);

                return(RedirectToAction("/Details/" + order.Id));
            }
            return(RedirectToAction("Details", "ShoppingCarts"));
        }
Exemplo n.º 26
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Production")
            {
                services.AddDbContext <AppDbContext>(options =>
                                                     options.UseSqlServer(Configuration.GetConnectionString("AzureDBContext")));
            }
            else
            {
                services.AddDbContext <AppDbContext>(options =>
                                                     options.UseSqlServer(Configuration.GetConnectionString("AppDBContext")));
            }

            services.AddIdentity <ApplicationUser, IdentityRole>().AddEntityFrameworkStores <AppDbContext>();

            services.ConfigureApplicationCookie(options =>
            {
                options.LoginPath        = $"/Identity/Account/Login";
                options.LogoutPath       = $"/Identity/Account/Logout";
                options.AccessDeniedPath = $"/Manage/Account/AccessDenied";
            });

            services.AddScoped <ICategoryRepository, CategoryRepository>();
            services.AddScoped <IProductRepository, ProductRepository>();
            services.AddScoped <IOrderRepository, OrderRepository>();
            services.AddScoped <ShoppingCartRepository>(sp => ShoppingCartRepository.GetCart(sp));
            services.AddHttpContextAccessor();

            //Claims-based
            services.AddTransient <IAuthorizationHandler, AgeHandler>();
            services.AddAuthorization(options =>
            {
                //options.AddPolicy("AdministratorOnly", policy => policy.RequireRole("Administrator"));
                options.AddPolicy("CreateCategoryPolicy", policy => policy.RequireClaim("Create Category", "Create Category"));
                options.AddPolicy("EditCategoryPolicy", policy => policy.RequireClaim("Edit Category", "Edit Category"));
                options.AddPolicy("DeleteCategoryPolicy", policy => policy.RequireClaim("Edit Category", "Edit Category")
                                  .RequireClaim("Delete Category", "Delete Category"));

                options.AddPolicy("AgeLimit", policy => policy.Requirements.Add(new AgeRequirement(AuthorizationConstants.Policies.MINIMUM_ORDER_AGE)));
            });

            services.AddSession();
            services.AddControllersWithViews();
            services.AddRazorPages();
        }
        public IActionResult AddressAndPayment([FromBody] OrderFormViewModel model)
        {
            var order = model.order;

            order.Username  = model.shoppingCartId;
            order.OrderDate = DateTime.Now;
            Console.WriteLine("AddresPayment - ShoppingCartId: " + model.shoppingCartId);
            //Save Order
            storeDB.Orders.Add(order);
            storeDB.SaveChanges();
            //Process the order
            var cart = ShoppingCartRepository.GetCart(storeDB);

            cart.CreateOrder(order);

            Console.WriteLine("AddresPayment - OrderId: " + order.OrderId);
            return(Ok(order));
        }
Exemplo n.º 28
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            //services.AddScoped<ICategoryRepository, MockCategoryRepository>();
            //services.AddScoped<IPieRepository, MockPieRepository>();
            services.AddScoped <ICategoryRepository, CategoryRepository>();
            services.AddScoped <IPieRepository, PieRepository>();
            services.AddScoped <IShoppingCartRepository>(sp => ShoppingCartRepository.GetCart(sp));
            services.AddScoped <IOrderRepository, OrderRepository>();
            services.AddDefaultIdentity <IdentityUser>().AddEntityFrameworkStores <BethanysPieShopDbContext>();
            services.AddRazorPages();

            services.AddHttpContextAccessor();
            services.AddSession();

            services.AddDbContext <BethanysPieShopDbContext>(options =>
                                                             options.UseSqlServer(
                                                                 Configuration.GetConnectionString("DefaultConnection")));
            services.AddControllersWithViews();
        }
Exemplo n.º 29
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <AppDbContext>(option => option.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
            services.AddIdentity <ApplicationUser, IdentityRole>(options => {
                options.Password.RequiredLength         = 8;
                options.Password.RequireNonAlphanumeric = true;
                options.Password.RequireUppercase       = true;
                options.User.RequireUniqueEmail         = true;
            }).AddEntityFrameworkStores <AppDbContext>();

            services.AddScoped <IInventoryRepository, InventoryRepository>();
            services.AddScoped <IShoppingCartRepository>(sp => ShoppingCartRepository.GetCart(sp));
            services.AddScoped <IOrderRepository, OrderRepository>();
            services.AddScoped <IEmailSender, EmailSender>();

            services.AddControllersWithViews();
            services.AddHttpContextAccessor();
            services.AddSession();
            services.AddRazorPages();
        }
Exemplo n.º 30
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDirectoryBrowser();

            services.AddDbContext <AppDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddDefaultIdentity <AppUser>(options =>
            {
                options.Password.RequiredLength               = 8;
                options.Password.RequireDigit                 = false;
                options.Password.RequireUppercase             = false;
                options.Password.RequiredUniqueChars          = 0;
                options.Password.RequireNonAlphanumeric       = false;
                options.User.RequireUniqueEmail               = true;
                options.SignIn.RequireConfirmedEmail          = true;
                options.SignIn.RequireConfirmedAccount        = true;
                options.Tokens.EmailConfirmationTokenProvider = "emailconfirmation";
            })
            .AddEntityFrameworkStores <AppDbContext>()
            .AddDefaultTokenProviders()
            .AddTokenProvider <EmailConfirmationTokenProvider <AppUser> >("emailconfirmation");

            //services.AddIdentityCore<IdentityUser<Guid>, IdentityRole<Guid>>().AddEntityFrameworkStores<AppDbContext>();
            services.Configure <DataProtectionTokenProviderOptions>(options => options.TokenLifespan = TimeSpan.FromHours(4));

            services.Configure <MailSettings>(Configuration.GetSection("MailSettings"));

            services.AddTransient <IBookRepository, BookRepository>();
            services.AddTransient <IOrderRepository, OrderRepository>();
            services.AddScoped <ShoppingCartRepository>(sp => ShoppingCartRepository.GetCart(sp));

            services.AddTransient <IEmailService, EmailService>();

            services.AddHttpContextAccessor();
            services.AddSession();
            services.AddControllersWithViews();
            services.AddRazorPages();
        }