private void UpdateK_AdminSubscriptions(string[] selectedK_Admins, Subscription subscriptionToUpdate) { if (selectedK_Admins == null) { subscriptionToUpdate.K_AdminSubscriptions = new List <K_AdminSubscriptions>(); return; } var selectedK_AdminsHS = new HashSet <string>(selectedK_Admins); var subscriptionK_Admins = new HashSet <int> (subscriptionToUpdate.K_AdminSubscriptions.Select(k => k.K_Admin.K_AdminId)); foreach (var k_admin in _context.K_Admin) { if (selectedK_AdminsHS.Contains(k_admin.K_AdminId.ToString())) { if (!subscriptionK_Admins.Contains(k_admin.K_AdminId)) { subscriptionToUpdate.K_AdminSubscriptions.Add(new K_AdminSubscriptions { SubscriptionId = subscriptionToUpdate.SubscriptionId, K_AdminId = k_admin.K_AdminId }); } } else { if (subscriptionK_Admins.Contains(k_admin.K_AdminId)) { K_AdminSubscriptions k_adminToRemove = subscriptionToUpdate.K_AdminSubscriptions.FirstOrDefault(i => i.K_AdminId == k_admin.K_AdminId); _context.Remove(k_adminToRemove); } } } }
public async Task <IActionResult> Create([Bind("SubscriptionId,SubscriptionName,CustomerId,HardwareId")] Subscription subscription, string[] selectedK_Admins, string[] selectedJobs) { if (selectedK_Admins != null) { subscription.K_AdminSubscriptions = new List <K_AdminSubscriptions>(); foreach (var k_admin in selectedK_Admins) { var k_adminToAdd = new K_AdminSubscriptions { SubscriptionId = subscription.SubscriptionId, K_AdminId = int.Parse(k_admin) }; subscription.K_AdminSubscriptions.Add(k_adminToAdd); } } if (selectedJobs != null) { subscription.SubscriptionJobs = new List <SubscriptionJobs>(); foreach (var job in selectedJobs) { var jobToAdd = new SubscriptionJobs { SubscriptionId = subscription.SubscriptionId, JobId = int.Parse(job) }; subscription.SubscriptionJobs.Add(jobToAdd); } } if (ModelState.IsValid) { _context.Add(subscription); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } //ViewData["CustomerId"] = new SelectList(_context.Customer, "CustomerId", "CompanyName", subscription.CustomerId); //ViewData["HardwareId"] = new SelectList(_context.Hardware, "HardwareId", "HardwareName", subscription.HardwareId); PopulateCompanyDropDownList(subscription.CustomerId); PopulateHardwareDropDownList(subscription.HardwareId); PopulateAssignedK_AdminData(subscription); PopulateAssignedJobData(subscription); return(View(subscription)); }