public IHttpActionResult GetProducts()
 {
     if (ShoppingData.ProductList().Any())
     {
         return(Ok(ShoppingData.ProductList()));
     }
     else
     {
         return(NotFound());
     }
 }
        public IHttpActionResult RemoveProductFromCart(int OrderID, int ProductID)
        {
            if (OrderDataValidation.ValidateOpenOrder(OrderID))
            {
                if (ShoppingData.ProductList().Any(p => p.P_ID == ProductID))
                {
                    using (ShoppingEntities entities = new ShoppingEntities())
                    {
                        if (entities.Cart.Any(c => c.C_OrderID == OrderID && c.C_ProductID == ProductID))
                        {
                            int NoOfItems = entities.Cart.Where(c => c.C_OrderID == OrderID && c.C_ProductID == ProductID).First().C_Count;

                            if (NoOfItems > 0)
                            {
                                NoOfItems = NoOfItems - 1;

                                entities.Cart.First(c => c.C_OrderID == OrderID && c.C_ProductID == ProductID).C_Count = NoOfItems;
                                entities.SaveChanges();
                                return(Ok("1 Item removed from Cart"));
                            }
                            else
                            {
                                return(BadRequest("0 items in Cart"));
                            }
                        }
                        else
                        {
                            return(BadRequest("Items not present in Cart"));
                        }
                    }
                }
                else
                {
                    return(BadRequest("Invalid Product ID"));
                }
            }
            else
            {
                return(BadRequest("Invalid OrderID"));
            }
        }
        public IHttpActionResult AddProductToCart(int OrderID, int ProductID)
        {
            if (OrderDataValidation.ValidateOpenOrder(OrderID))
            {
                if (ShoppingData.ProductList().Any(p => p.P_ID == ProductID))
                {
                    using (ShoppingEntities entities = new ShoppingEntities())
                    {
                        if (entities.Cart.Any(c => c.C_OrderID == OrderID && c.C_ProductID == ProductID))
                        {
                            int NoOfItems = entities.Cart.Where(c => c.C_OrderID == OrderID && c.C_ProductID == ProductID).First().C_Count;
                            NoOfItems = NoOfItems + 1;

                            entities.Cart.First(c => c.C_OrderID == OrderID && c.C_ProductID == ProductID).C_Count = NoOfItems;
                            entities.SaveChanges();
                        }
                        else
                        {
                            entities.Cart.Add(new Cart {
                                C_OrderID = OrderID, C_ProductID = ProductID, C_Count = 1
                            });
                            entities.SaveChanges();
                        }
                        return(Ok("Item added in Cart"));
                    }
                }
                else
                {
                    return(BadRequest("Invalid Product ID"));
                }
            }
            else
            {
                return(BadRequest("Invalid OrderID"));
            }
        }
        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);
        }