public async Task <IActionResult> AddToGroup([Bind("ID")] int Id, int[] Contacts, string Referee) { var _Group = _context.Groups.First(i => i.ID == Id); foreach (var item in Contacts) { var _contacts = await _context.Contacts.FirstAsync(i => i.ID == item); GroupAssign assign = new GroupAssign() { Group = _Group, ContactID = _contacts.ID }; _Group.Members.Add(assign); _context.GroupAssigns.Add(assign); await _context.SaveChangesAsync(); } if (!String.IsNullOrEmpty(Referee)) { return(Redirect(Referee)); } return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> Create([Bind("ID,GroupName")] Group group, int[] Contacts) { var user = await _signInManager.UserManager.GetUserAsync(User); var _customer = _context.Customers.First(x => x.ApplicationUserId == user.Id); if (ModelState.IsValid) { group.CustomerId = _customer.ID; List <GroupAssign> _contacts = new List <GroupAssign>(); if (Contacts == null) { } else { foreach (var item in Contacts) { var contacts = _context.Contacts.First(x => x.ID == item); GroupAssign assign = new GroupAssign() { ContactID = contacts.ID }; _contacts.Add(assign); } group.Members = _contacts; } _context.Add(group); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(group)); }
public async Task <IActionResult> Edit(int id, [Bind("ID,GroupName")] Group group, int[] Contacts) { var user = await _signInManager.UserManager.GetUserAsync(User); var _customer = _context.Customers.First(x => x.ApplicationUserId == user.Id); var GroupAssig = _context.GroupAssigns.Where(x => x.Group.ID == id); if (id != group.ID) { return(NotFound()); } if (ModelState.IsValid) { group.CustomerId = _customer.ID; try { List <GroupAssign> _contacts = new List <GroupAssign>(); if (Contacts == null) { } else { if (Contacts.Count() == 0) { foreach (var item in GroupAssig) { _context.GroupAssigns.Remove(item); group.Members.Remove(item); } } foreach (var item in Contacts) { var contacts = _context.Contacts.First(x => x.ID == item); if (_context.GroupAssigns.Where(x => x.Group.ID == group.ID).Any(x => x.ContactID == contacts.ID)) { } else { GroupAssign assign = new GroupAssign() { ContactID = contacts.ID }; _contacts.Add(assign); } foreach (var Contact in GroupAssig) { var check = Contacts.Any((x => x == Contact.ContactID)); if (Contacts.Any(x => x == Contact.ContactID)) { } else { var _contact = GroupAssig.First(x => x.ContactID == Contact.ContactID); _context.GroupAssigns.Remove(_contact); group.Members.Remove(_contact); } } group.Members = _contacts; } _context.Update(group); await _context.SaveChangesAsync(); } } catch (DbUpdateConcurrencyException) { if (!GroupExists(group.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(group)); }