Пример #1
0
 public static bool ValidateEmptyCart(int orderid)
 {
     if (OrderDataValidation.ValidateOrderExists(orderid))
     {
         if (ShoppingData.OrderCart(orderid).Count() == 0)
         {
             return(true);
         }
         else
         {
             if (ShoppingData.OrderCart(orderid).Where(c => c.C_Count != 0).Count() == 0)
             {
                 return(true);
             }
             else
             {
                 return(false);
             }
         }
     }
     else
     {
         return(true);
     }
 }
        public decimal TotalAfterDiscount(int orderid)
        {
            List <Cart>     myOrderCart;
            List <Products> allProducts;
            List <Discount> allDiscounts;

            decimal totalAmount = 0;
            decimal itemCost    = 0;

            myOrderCart  = ShoppingData.OrderCart(orderid).ToList();
            allDiscounts = ShoppingData.Discounts().ToList();
            allProducts  = ShoppingData.ProductList().ToList();

            foreach (var item in myOrderCart)
            {
                itemCost = 0;

                if (CartDataValidation.ValidateEmptyCartProduct(item))
                {
                    itemCost = 0;
                }
                else
                {
                    itemCost = itemCost + ItemCost(item, allProducts.First(p => p.P_ID == item.C_ProductID));

                    if (allDiscounts.Any(d => d.D_ProductID == item.C_ProductID))
                    {
                        foreach (var discount in allDiscounts.Where(d => d.D_ProductID == item.C_ProductID))
                        {
                            switch (discount.D_DiscountCode.ToUpper())
                            {
                            case "3FOR2":
                                itemCost = itemCost - ThreeForTwoDiscount(item, allProducts.First(p => p.P_ID == item.C_ProductID), discount);
                                continue;

                            default:
                                itemCost = itemCost - ProductDiscount(item, allProducts.First(p => p.P_ID == item.C_ProductID), discount);
                                continue;
                            }
                        }
                    }
                }

                totalAmount = totalAmount + itemCost;
            }

            if (allDiscounts.Any(d => d.D_ProductID == 0))
            {
                foreach (var discount in allDiscounts.Where(d => d.D_ProductID == 0))
                {
                    switch (discount.D_DiscountCode.ToUpper())
                    {
                    case "ALL10":
                        totalAmount = totalAmount - CommonDiscount(totalAmount, discount);
                        continue;

                    default:
                        totalAmount = totalAmount - CommonDiscount(totalAmount, discount);
                        continue;
                    }
                }
            }

            return(totalAmount);
        }