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); }