/// <summary> /// add varinat to cart /// </summary> /// <param name="newVariantAdded"></param> /// <param name="SellingPrice"></param> /// <returns>true if the added</returns> public bool AddVariantToCart(CartVariantDTO newVariantAdded, double SellingPrice) { try { CartVariantMapping cartVariantAdd = cartOrderMapper.Map <CartVariantDTO, CartVariantMapping>(newVariantAdded); cartVariantAdd.ID = Guid.NewGuid(); cartVariantAdd.SellingPrice = SellingPrice; CartVariantMapping variant = dbContext.CartVariantMappings.Where(v => v.VariantID == newVariantAdded.VariantID && v.CartID == newVariantAdded.CartID).FirstOrDefault(); Debug.WriteLine(dbContext.CartVariantMappings.Where(v => v.VariantID == newVariantAdded.VariantID && v.CartID == newVariantAdded.CartID).FirstOrDefault()); if (variant == null) { dbContext.CartVariantMappings.Add(cartVariantAdd); } else { variant.Quantity = newVariantAdded.Quantity; variant.SellingPrice = SellingPrice; } dbContext.SaveChanges(); return(true); } catch (Exception) { return(false); } }
/// <summary> /// return varianat data if present /// </summary> /// <param name="variantData"></param> /// <returns></returns> public CartVariantDTO VariantPresentAtCart(CartVariantDTO variantData) { CartVariantMapping variant = dbContext.CartVariantMappings.Where(v => v.VariantID == variantData.VariantID && v.CartID == variantData.CartID).FirstOrDefault(); Debug.WriteLine(dbContext.CartVariantMappings.Where(v => v.VariantID == variantData.VariantID && v.CartID == variantData.CartID).FirstOrDefault()); CartVariantDTO variantPresentCart = cartCheckerMapper.Map <CartVariantMapping, CartVariantDTO>(variant); return(variantPresentCart); }
/// <summary> /// add product to cart business /// </summary> /// <param name="newVariantAdded"></param> /// <returns>true is product is added</returns> public bool AddItemCart(CartVariantDTO newVariantAdded) { ///get the product variants details VariantDTO variantData = cartOrderHelper.GetVariantDetails(newVariantAdded.VariantID); /* * calautale the the selling price * * */ double SellingPrice = variantData.ListingPrice - variantData.Discount; /* * * get the varinat data from cart whther it is present or not in the cart * add the new added Quautity to store quatity * */ CartVariantDTO VariantPresentAtCart = cartOrderHelper.VariantPresentAtCart(newVariantAdded); /* * * Check the inventory is available * */ /*check the variant present at cart*/ if (VariantPresentAtCart != null) { newVariantAdded.Quantity = newVariantAdded.Quantity + VariantPresentAtCart.Quantity; } if (cartOrderHelper.IsInventoryAvaiable(newVariantAdded.Quantity, variantData.Inventory)) { ////check the if user order limit is excedded then the order limit if (cartOrderHelper.IsUserCanOrder(newVariantAdded, variantData)) { if (cartOrderHelper.ProductLimit(variantData.ProductID) >= newVariantAdded.Quantity) { bool added = cartOrderHelper.AddVariantToCart(newVariantAdded, SellingPrice); } else { throw new UserOrderLimitExceddException(); } } else { throw new UserOrderLimitExceddException(); } } else { throw new OutOfStockException(); } return(true); }
/// <summary> /// /// </summary> /// <param name="ItemToBEAdded"></param> /// <param name="variantData"></param> /// <returns></returns> /// public bool IsUserCanOrder(CartVariantDTO newVariantAdded, VariantDTO variantData) { IEnumerable <OrderPlacedVariantDTO> orderPlacedVariants = addvariantDataBase.UserOrderData(newVariantAdded.CartID); int OrderLimit = addvariantDataBase.GetProductOrderLimitByID(variantData.ProductID); int UserOrderdCount = orderPlacedVariants.Where(c => c.VariantID == newVariantAdded.VariantID).Count(); if (UserOrderdCount >= OrderLimit) { return(false); } return(true); }
public ActionResult AddItem([Bind(Include = "Quantity,VariantID")] CartVariantViewModel cartVariantViewModel) { var cartViewConfig = new MapperConfiguration(cfg => { cfg.CreateMap <CartVariantViewModel, CartVariantDTO>(); }); IMapper cartDataMapper = new Mapper(cartViewConfig); CartVariantDTO cartItemDTO = new CartVariantDTO(); try { cartItemDTO = cartDataMapper.Map <CartVariantViewModel, CartVariantDTO>(cartVariantViewModel); cartItemDTO.CartID = new Guid(Session["userId"].ToString()); CartBusiness cartBusiness = new CartBusiness(); bool isproductAdd = cartBusiness.AddItemCart(cartItemDTO); return(RedirectToAction("GetCart", "Cart")); } catch (Exception) { return(RedirectToAction("ErrorViewShow", "HttpErrors", new { msg = "order Limit For Product is Excedd" })); } }
public bool AddVariantToCart(CartVariantDTO newVariantAdded, double SellingPrice) { return(addvariantDataBase.AddVariantToCart(newVariantAdded, SellingPrice)); }
/// <summary> /// /// </summary> /// <param name="ItemToBEAdded"></param> /// <param name="variantData"></param> /// <returns></returns> public CartVariantDTO VariantPresentAtCart(CartVariantDTO variantData) { return(addvariantDataBase.VariantPresentAtCart(variantData)); }