public async Task <int> Handle(RegisterUserCommand request, CancellationToken cancellationToken) { string hash = EncryptionLib.GetRandomKey(64); string encryptedPassword = EncryptionLib.Encrypt(request.User.Password, hash); Domain.Entities.Cart cart = new Domain.Entities.Cart() { Products = new List <Domain.Entities.ProductCart>(), Total = 0 }; dbContext.Carts.Add(cart); await dbContext.SaveChangesAsync(cancellationToken); Domain.Entities.User user = new Domain.Entities.User { UserName = request.User.UserName, Password = encryptedPassword, Salt = hash, CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now, Email = request.User.Email, IsDeleted = false, EmailConfirmed = true, IsLocked = false, RoleId = 2, CartId = cart.CartId }; dbContext.Users.Add(user); request.User.UserId = user.UserId; return(await dbContext.SaveChangesAsync(cancellationToken)); }
//NavigationLocationFilter is used to disable the Menu Check Out button when ever we have navigate to the Check out view. public PartialViewResult CartSummary(Domain.Entities.Cart cart, string location) { if (location != null && location.Equals("Cart")) { ViewBag.DisableMenuCheckOut = true; } return(PartialView(cart)); }
public static CartModel From(Domain.Entities.Cart cart) { return(new CartModel() { Id = cart.Id, CreatedAt = cart.CreatedAt, IsCurrent = cart.IsCurrent, Items = cart.Items?.Select(CartItemModel.From).ToList() }); }
public async Task <Domain.Entities.Cart> AddOrUpdateAsync(Domain.Entities.Cart item) { var created = await _database.StringSetAsync(item.Id, JsonConvert.SerializeObject(item)); if (!created) { return(null); } return(await GetAsync(new Guid(item.Id))); }
public ActionResult Checkout(Domain.Entities.Cart cart, string returnUrl) { if (cart.CartItems.Count() > 0) { ViewBag.ReturnUrl = returnUrl; return(View(new Domain.Entities.ShippingDetails())); } else { return(RedirectToAction("Index", new { returnUrl, cartIsEmpty = true })); } }
public async System.Threading.Tasks.Task <RedirectToRouteResult> AddToCart(Domain.Entities.Cart cart, int productId, string returnUrl) { string key = ConfigurationManager.AppSettings.Get("ProductListCacheKey"); IEnumerable <Domain.Entities.Product> productList = await _productRepository.Products(key); Domain.Entities.Product product = productList.FirstOrDefault(p => p.ProductId == productId); if (product != null) { cart.AddItem(product, 1); } return(RedirectToAction("Index", new { returnUrl })); }
public override async Task <CartModel> DoHandleRequest(CreateCartRequest request, CancellationToken cancellationToken) { var cart = new Domain.Entities.Cart() { UserId = request.User.Id, CreatedAt = DateTime.UtcNow, IsCurrent = true, Items = new CartItem[] { } }; await RecipeDomainContext.Carts.AddAsync(cart); await RecipeDomainContext.SaveChangesAsync(); return(CartModel.From(cart)); }
public ViewResult Checkout(Domain.Entities.Cart cart, Domain.Entities.ShippingDetails shippingDetails) { if (cart.CartItems.Count() == 0) { ModelState.AddModelError("", "Sorry but your cart is empty!"); } if (ModelState.IsValid) { _orderProcessor.ProcessOrder(cart, shippingDetails); cart.ClearCartItems(); return(View("Completed")); } else { return(View(new Domain.Entities.ShippingDetails())); } }
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { const string sessionKey = "Cart"; Domain.Entities.Cart cart = null; if (controllerContext.HttpContext.Session != null) { cart = (Domain.Entities.Cart)controllerContext.HttpContext.Session[sessionKey]; if (cart == null) { cart = new Domain.Entities.Cart(); if (controllerContext.HttpContext.Session != null) { controllerContext.HttpContext.Session[sessionKey] = cart; } } } return(cart); }
public void Add_New_Lines() { //Arrnage Product P1 = new Product { ProductID = 1, Name = "P1" }; Product P2 = new Product { ProductID = 2, Name = "P2" }; //Arrange - new Cart SportsStore.Domain.Entities.Cart target = new Domain.Entities.Cart(); //Act target.AddItem(P1, 1); target.AddItem(P2, 1); CartLine[] results = target.Lines.ToArray(); //ASsert Assert.AreEqual(results.Length, 2); Assert.AreEqual(results[0].Product, P1); Assert.AreEqual(results[1].Product, P2); }
//Combine public void Can_Add_Quantity_For_Exisiting_Lines() { //Arrange Product p1 = new Product { ProductID = 1, Name = "p1" }; Product p2 = new Product { ProductID = 2, Name = "p2" }; //Act SportsStore.Domain.Entities.Cart target = new Domain.Entities.Cart(); target.AddItem(p1, 1); target.AddItem(p2, 1); target.AddItem(p1, 10); CartLine[] result = target.Lines.OrderBy(a => a.Product.ProductID).ToArray(); //Asset Assert.AreEqual(result.Length, 2); Assert.AreEqual(result[0].Qunatity, 11); Assert.AreEqual(result[1].Qunatity, 1); }
public async System.Threading.Tasks.Task <RedirectToRouteResult> RemoveFromCart(Domain.Entities.Cart cart, int productId, string returnUrl) { IEnumerable <Domain.Entities.Product> productList = await _productRepository.Products(); Domain.Entities.Product product = productList.FirstOrDefault(p => p.ProductId == productId); if (product != null) { cart.RemoveCartItem(product); } return(RedirectToAction("Index", new { returnUrl })); }
public ViewResult Index(Domain.Entities.Cart cart, string returnUrl, bool menuCheckOutClicked = false) { return(View(new Models.CartIndexViewModel { Cart = cart, ReturnUrl = returnUrl })); }