public void Configure(IApplicationBuilder app, IHostingEnvironment env, AddToCartContext addToCartContext) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler(appBuilder => { appBuilder.Run(async context => { context.Response.StatusCode = 500; await context.Response.WriteAsync("Internal error occurred."); }); }); } addToCartContext.EnsureSeedDataForContext(); addToCartContext.EnsureSeedDataForUserContext(); AutoMapper.Mapper.Initialize(cfg => { cfg.CreateMap <IEnumerable <Entities.Category>, Models.CategoryListDto>() .ConvertUsing <CategoryListConverter>(); }); app.UseMvc(); }
public JsonResult AddProduct(int postId, int quantity, decimal price, FormCollection form) { var post = _postService.GetById(postId); var ctx = new AddToCartContext { Post = post, Quantity = quantity, Price = price }; //Create cart _shoppingCartItemService.AddToCart(ctx); var model = PrepareMiniShoppingCartModel(); var jsonResult = Json(new { success = true, list = this.RenderRazorViewToString("_Order.TopCart", model) }, JsonRequestBehavior.AllowGet); return(jsonResult); }
/// <summary> /// Update cart khi thay đổi số lượng /// </summary> /// <param name="postId"></param> /// <param name="quantity"></param> /// <param name="price"></param> /// <returns>IEnumber tất cả sản phẩm của khách hàng</returns> public JsonResult UpdateCartItem(int postId, int quantity, decimal price) { //Update cart theo số lượng mới var post = _postService.GetById(postId); var ctx = new AddToCartContext { Post = post, Quantity = quantity, Price = price }; //Update cart _shoppingCartItemService.AddToCart(ctx); var model = PrepareMiniShoppingCartModel(); var jsonResult = Json(new { success = true, list = this.RenderRazorViewToString("_Cart.CartItem", model) }, JsonRequestBehavior.AllowGet); return(jsonResult); }
public async Task <IActionResult> Index() { var storeId = Services.StoreContext.CurrentStore.Id; var customer = Services.WorkContext.CurrentCustomer; var cart = await _shoppingCartService.GetCartItemsAsync(storeId : storeId); if (!cart.Any()) { return(RedirectToRoute("ShoppingCart")); } if (customer.IsGuest() && !_orderSettings.AnonymousCheckoutAllowed) { return(new UnauthorizedResult()); } customer.ResetCheckoutData(storeId); // Validate checkout attributes. var checkoutAttributes = customer.GenericAttributes.CheckoutAttributes; var warnings = new List <string>(); var isValid = await _shoppingCartValidator.ValidateCartItemsAsync(cart, warnings, true, checkoutAttributes); if (!isValid) { NotifyWarning(string.Join(Environment.NewLine, warnings.Take(3))); return(RedirectToRoute("ShoppingCart")); } var validatingCartEvent = new ValidatingCartEvent(cart, warnings, customer); await Services.EventPublisher.PublishAsync(validatingCartEvent); if (validatingCartEvent.Result != null) { return(validatingCartEvent.Result); } if (warnings.Any()) { NotifyWarning(string.Join(Environment.NewLine, warnings.Take(3))); return(RedirectToRoute("ShoppingCart")); } // Validate each shopping cart item. foreach (var cartItem in cart) { var ctx = new AddToCartContext { StoreId = storeId, Product = cartItem.Item.Product, BundleItem = cartItem.Item.BundleItem, ChildItems = cartItem.ChildItems.Select(x => x.Item).ToList() }; isValid = await _shoppingCartValidator.ValidateAddToCartItemAsync(ctx, cartItem.Item, cart); if (!isValid) { warnings.AddRange(ctx.Warnings); NotifyWarning(string.Join(Environment.NewLine, warnings.Take(3))); return(RedirectToRoute("ShoppingCart")); } } await _db.SaveChangesAsync(); return(RedirectToAction(nameof(BillingAddress))); }
public AddToCartRepository(AddToCartContext context) { _context = context; }