コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="UserId"></param>
        /// <returns></returns>
        public CartsVariantDTO  GetCartByUserId(Guid UserId)
        {
            IEnumerable <CartVariantMapping> itemAtCart = dbContext.CartVariantMappings.Where(v => v.CartID == UserId).ToList();

            Debug.WriteLine(dbContext.CartVariantMappings.Where(v => v.CartID == UserId).ToList());
            CartsVariantDTO cartVariantDTO = new CartsVariantDTO();

            cartVariantDTO.Items = cartVariantMapper.Map <IEnumerable <CartVariantMapping>, IEnumerable <CartVariantDTO> >(itemAtCart);
            return(cartVariantDTO);
        }
コード例 #2
0
        /// <summary>
        /// get the all product aviable in the cart
        /// </summary>
        /// <returns>view cart details</returns>
        public ActionResult GetCart()
        {
            Guid            UserID         = new Guid(Session["userId"].ToString());
            CartBusiness    cartBusiness   = new CartBusiness();
            CartsVariantDTO data           = cartBusiness.GetCartByUserId(UserID);
            var             cartViewConfig = new MapperConfiguration(cfg => {
                cfg.CreateMap <CartsVariantDTO, CartViewModel>();
                cfg.CreateMap <CartVariantDTO, VariantCartViewModel>();
                cfg.CreateMap <VariantDTO, VariantViewModel>();
                cfg.CreateMap <ProductDTO, ProductViewModel>();
            });

            IMapper       cartDataMapper = new Mapper(cartViewConfig);
            CartViewModel viewData       = cartDataMapper.Map <CartsVariantDTO, CartViewModel>(data);

            return(View(viewData));
        }
コード例 #3
0
        /// <summary>
        /// placeorder of user with address id and userId
        /// </summary>
        /// <param name="AddressId"></param>
        /// <param name="UserId"></param>
        /// <returns></returns>
        public bool PlacedOrder(Guid AddressId, Guid UserId)
        {
            VariantDTO variantDTO = new VariantDTO();
            //validation for variant order
            //1.get the cart data
            bool   addressVerfiyed = orderDatabase.IsVerfiyAddress(AddressId, UserId);
            double totalAmount     = 0;

            if (addressVerfiyed)
            {
                try
                {
                    CartsVariantDTO cartsData = cartOrderHelper.GetCartByUserId(UserId);
                    foreach (CartVariantDTO variantAtCart in cartsData.Items)
                    {
                        //2.get each cart varinat data from varinat table
                        variantDTO = cartOrderHelper.GetVariantDetails(variantAtCart.VariantID);
                        //3.check all cart data inventory
                        if (!cartOrderHelper.IsInventoryAvaiable(variantAtCart.Quantity, variantDTO.Inventory))
                        {
                            throw new OutOfStockException();
                        }
                        //3.orderlimit
                        if (!cartOrderHelper.IsUserCanOrder(variantAtCart, variantDTO))
                        {
                            throw new UserOrderLimitExceddException();
                        }
                        variantAtCart.SellingPrice = variantDTO.ListingPrice - variantDTO.Discount;
                        totalAmount = totalAmount + variantAtCart.SellingPrice * variantAtCart.Quantity;
                    }

                    //validation end
                    OrderVariantDTO order = new OrderVariantDTO();
                    order.ItemOrders = cartsData;
                    OrderDataDTO orderData = new OrderDataDTO();
                    orderData.DeliveryAddressID = AddressId;
                    orderData.TotalAmount       = totalAmount;
                    orderData.isCancelled       = "N";
                    bool isOrderPlaced = orderDatabase.PlacedOrder(UserId, orderData, order);
                    if (isOrderPlaced)
                    {
                        foreach (CartVariantDTO variant in cartsData.Items)
                        {
                            Guid Id = variant.ID;
                            bool t  = cartOrderHelper.DeleteCartVariant(Id, UserId);
                        }
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }

                catch (OutOfStockException)
                {
                    return(false);
                }
                catch (UserOrderLimitExceddException)
                {
                    return(false);
                }
                catch (Exception ex)
                {
                    return(false);
                }
            }
            else
            {
                throw new UserDetailIsWrong();
            }
        }