public void PlaceOrder(Guid UserID, CartVariantItemsDTO cartVariantItemsDTO, Guid addressID) { Guid orderID = Guid.NewGuid(); Guid orderPlacedID = Guid.NewGuid(); DateTime dateTime = DateTime.Now; Order order = new Order { ID = orderID, DeliveryAddressID = addressID, TotalAmount = cartVariantItemsDTO.SubTotal, isCancelled = "N", OrderDate = dateTime, DeliveryDate = dateTime, StatusID = 1 }; shoppingCartEntities.Orders.Add(order); shoppingCartEntities.SaveChanges(); OrderPlaced orderPlaced = new OrderPlaced { ID = orderPlacedID, OrderID = orderID, UserID = UserID }; shoppingCartEntities.OrderPlaceds.Add(orderPlaced); shoppingCartEntities.SaveChanges(); foreach (var cartItem in cartVariantItemsDTO.CartItems) { OrderPlacedVariant orderPlacedVariant = new OrderPlacedVariant { ID = Guid.NewGuid(), OrderPlacedID = orderPlacedID, VariantID = cartItem.Variant.ID, SellingPrice = cartItem.Variant.DiscountedPrice, Quantity = cartItem.Quantity }; shoppingCartEntities.OrderPlacedVariants.Add(orderPlacedVariant); shoppingCartEntities.SaveChanges(); } return; }
public void PlaceOrder(Guid UserID, AddressDTO addressDTO) { if (orderDataBaseContext.ItemsExist(UserID)) { Guid AddressID = addressDatabaseContext.AddAddress(UserID, addressDTO); CartVariantItemsDTO cartVariantItemsDTO = cartDataBaseContext.GetCart(UserID); double subtotal = new double(); foreach (var cartVariant in cartVariantItemsDTO.CartItems) { int OrderQuantity = cartVariant.Quantity; double Discount = cartVariant.Variant.Discount; double Price = cartVariant.Variant.ListingPrice; cartVariant.Variant.DiscountedPrice = (Price * (100 - Discount) / 100); double DiscountedPrice = cartVariant.Variant.DiscountedPrice; subtotal += DiscountedPrice * OrderQuantity; } cartVariantItemsDTO.SubTotal = subtotal; orderDataBaseContext.PlaceOrder(UserID, cartVariantItemsDTO, AddressID); productDatabaseContext.UpdateInventory(cartVariantItemsDTO); cartDataBaseContext.EmptyCart(UserID); } else { throw new CartEmptyException(); } }
public CartVariantItemsDTO GetCart(Guid UserID) { var carts = shoppingCartEntities.CartVariantMappings.Include(c => c.Variant.Product).Where(c => c.CartID == UserID).ToList(); Debug.WriteLine(shoppingCartEntities.CartVariantMappings.Include(c => c.Variant.Product).Where(c => c.CartID == UserID)); CartVariantItemsDTO cartVariantItemsDTO = new CartVariantItemsDTO(); cartVariantItemsDTO.CartItems = CartItemsMapper.Map <IEnumerable <CartVariantMapping>, IEnumerable <CartVariantDTO> >(carts); return(cartVariantItemsDTO); }
public ActionResult ViewCart() { try { CartVariantItemsDTO cartVariantItemsDTO = cartBusinessContext.GetCart(new Guid(Session["UserID"].ToString())); CartVariantItemsViewModel cartVariantItemsViewModel = new CartVariantItemsViewModel(); cartVariantItemsViewModel.CartItems = CartInfoMapper.Map <IEnumerable <CartVariantDTO>, IEnumerable <CartVarientViewModel> >(cartVariantItemsDTO.CartItems); cartVariantItemsViewModel.SubTotal = cartVariantItemsDTO.SubTotal; return(View(cartVariantItemsViewModel)); } catch (Exception ex) { return(RedirectToAction("DefaultExceptionCatch", "Default", new { exception = ex })); } }
public void UpdateInventory(CartVariantItemsDTO cartVariantItemsDTO) { foreach (var cartItem in cartVariantItemsDTO.CartItems) { shoppingCartEntities.Variants.FirstOrDefault(p => p.ID == cartItem.Variant.ID).Inventory -= cartItem.Quantity; shoppingCartEntities.Variants.FirstOrDefault(p => p.ID == cartItem.Variant.ID).QuantitySold += cartItem.Quantity; shoppingCartEntities.Categories.FirstOrDefault(c => c.ID == cartItem.Variant.Product.Category.ID).ProductsSold += cartItem.Quantity; Debug.WriteLine(shoppingCartEntities.Variants.FirstOrDefault(p => p.ID == cartItem.Variant.ID).Inventory -= cartItem.Quantity); Debug.WriteLine(shoppingCartEntities.Variants.FirstOrDefault(p => p.ID == cartItem.Variant.ID).QuantitySold += cartItem.Quantity); Debug.WriteLine(shoppingCartEntities.Categories.FirstOrDefault(c => c.ID == cartItem.Variant.Product.Category.ID).ProductsSold += cartItem.Quantity); shoppingCartEntities.SaveChanges(); } return; }
public CartVariantItemsDTO GetCart(Guid UserID) { CartVariantItemsDTO cartVariantItemsDTO = cartDatabaseContext.GetCart(UserID); double subtotal = new double(); double Totaldiscount = new double(); foreach (var cartVariants in cartVariantItemsDTO.CartItems) { int Quantity = cartVariants.Quantity; double Discount = cartVariants.Variant.Discount; double Price = cartVariants.Variant.ListingPrice; cartVariants.Variant.DiscountedPrice = (Price * (100 - Discount) / 100); double DiscountedPrice = cartVariants.Variant.DiscountedPrice; subtotal += DiscountedPrice * Quantity; Totaldiscount += Discount * Price / 100; } cartVariantItemsDTO.TotalDiscount = Totaldiscount; cartVariantItemsDTO.SubTotal = subtotal; return(cartVariantItemsDTO); }