public ActionResult Create(GroupModel model) { var roles = GetForeignData(); ViewBag.Data_RolesList = roles; if (ModelState.IsValid) { try { Group gps = new Group(); gps.Name = model.Name; gps.Description = model.Description; var rolesArray = model.RolesList.Split(',').Select(x => Convert.ToInt32(x)); var RoleList = roleService.GetALL(rolesArray); gps.Roles.AddRange(RoleList); groupService.Create(gps); return RedirectToAction("index"); } catch (Exception ex) { ViewBag.Message = ex.Message; return View(model); } } else { return View(model); } }
public ActionResult Edit(int id) { GroupModel gpm = new GroupModel(); Group gps = new Group(); gps = groupService.IncludeFind(id); gpm.ID = gps.GroupID; gpm.Name = gps.Name; gpm.Description = gps.Description; List<int> RolesList = new List<int>(); RolesList = gps.Roles.Select(x => x.ID).ToList(); var roles = GetForeignData(RolesList); ViewBag.Data_RolesList = roles; return View(gpm); }
public ActionResult Edit(GroupModel model) { var rolesArray = model.RolesList.Split(',').Select(x => Convert.ToInt32(x)).ToList(); var roles = GetForeignData(rolesArray); ViewBag.Data_RolesList = roles; if (ModelState.IsValid) { try { groupService.Update(model); return RedirectToAction("index"); } catch (Exception ex) { ViewBag.Message = ex.Message; return View(model); } } else { return View(model); } }
public void Update(GroupModel model) { var rolesArray = model.RolesList.Split(',').Select(x => Convert.ToInt32(x)).ToList(); var target = IncludeFind(model.ID); DB_Service.Attach<Group>(target); target.Name = model.Name; target.Description = model.Description; var RoleList = roleService.GetALL(rolesArray); var currentroleArray = target.Roles.Select(x => x.ID).ToList(); foreach (Roles rl in roleService.GetALL()) { if (rolesArray.Contains(rl.ID)) { if (!currentroleArray.Contains(rl.ID)) { target.Roles.Add(rl); } } else { if (currentroleArray.Contains(rl.ID)) { target.Roles.Remove(rl); } } } DB_Service.Commit(); }