public async Task<ActionResult> Manage([Bind(Include = "ClientSubscriptionId,ClientID,ProductID,Quantity")] int ClientSubscriptionId, int ClientID, int ProductID, int Quantity)
        {
            var bankingActive = (from item in db.BankingDetails
                                 where item.ClientID == ClientID
                                 && item.Active
                                 select 1).Count() > 0;
            if (!bankingActive)
            {
                ModelState.AddModelError("Banking not active", bankingNotActive);
            }

            if (ModelState.IsValid)
            {
                if (ClientSubscriptionId == 0)//check that the same product is not added twice
                {
                    ClientSubscriptionId = (from item in db.ClientSubscriptions
                                            where item.ClientID == ClientID
                                            && item.ProductID == ProductID
                                            select item.ClientSubscriptionId).FirstOrDefault();
                }
                    if (ClientSubscriptionId > 0 )
                {
                    ClientSubscription clientSubscription = db.ClientSubscriptions.FirstOrDefault(m => m.ClientSubscriptionId == ClientSubscriptionId);
                    clientSubscription.Active = !clientSubscription.Active;
                    await db.SaveChangesAsync();
                }
                else 
                {
                    var newItem = new ClientSubscription() {Active=true, ClientID = ClientID, ProductID=ProductID, Quantity=Quantity };
                    db.ClientSubscriptions.Add(newItem);
                    await db.SaveChangesAsync();
                }
            }

            var clientSubscriptions = db.ClientSubscriptions.Include(mbox=>mbox.Product).Where(m => m.ClientID == ClientID ).ToList();
            var ProductIDs = clientSubscriptions.Select(s => s.ProductID).ToArray();
            var productList = db.Products.Where(m => !ProductIDs.Contains(m.ProductID) && m.Active).ToList();
            ViewBag.ProductID = new SelectList(productList, "ProductID", "ProductName", null);
            var viewModel = new ClientSubscriptionViewModel() { ClientSubscriptions = clientSubscriptions, Subscription = new ClientSubscription() { ClientID = ClientID, Active = true, Quantity = 1 }, ProductCount= productList.Count };
            return View(viewModel);
        }
        public ActionResult Manage(int ClientID)
        {
            var bankingActive = (from item in db.BankingDetails
                                 where item.ClientID == ClientID
                                 && item.Active
                                 select 1).Count() > 0;
            if (!bankingActive)
            {
                ModelState.AddModelError("Banking not active", bankingNotActive);
            }

            var clientSubscriptions = db.ClientSubscriptions.Where(m => m.ClientID == ClientID).ToList();
            var ProductIDs = clientSubscriptions.Select(s => s.ProductID).ToArray();
            var productList = db.Products.Where(m => !ProductIDs.Contains(m.ProductID) && m.Active).ToList();
            ViewBag.ProductID = new SelectList(productList, "ProductID", "ProductName", null);
            var viewModel = new ClientSubscriptionViewModel() { ClientSubscriptions = clientSubscriptions, Subscription = new ClientSubscription() { ClientID = ClientID, Active = true, Quantity = 1 }, ProductCount = productList.Count };
            return View(viewModel);
        }