public UserAssignedGroups GetGroups(string UserId) { using (SqlCommand cmd = new SqlCommand("Select UserId, FirstName, LastName From dbo.ApplicationUsers Where UserId = @UserId; Select A.GroupName, Case When B.UserId IS NULL Then 'false' Else 'true' End As IsAssigned From dbo.ApplicationGroups A Left Outer Join dbo.UserGroups B On A.GroupName = B.GroupName And B.UserId = @UserId;", Conn)) { cmd.CommandTimeout = ComTimeout; cmd.Parameters.AddWithValue("@UserId", UserId); var ug = new UserAssignedGroups(); AssignedGroups obj = null; try { OpenConnection(); using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { ug.UserId = (string)dr["UserId"]; ug.FullName = $"{(string)dr["FirstName"]} {(string)dr["LastName"]}"; } dr.NextResult(); while (dr.Read()) { obj = new AssignedGroups { GroupName = (string)dr["GroupName"], IsAssigned = bool.Parse(dr["IsAssigned"].ToString()) }; ug.Groups.Add(obj); } } return(ug); } finally { CloseConnection(); } } }
public IActionResult AssignGroups(AssignedGroupsViewModel obj) { List <string> UsersList = new List <string>(); UsersList = obj.Users.Split(' ').ToList(); DigitalBoardMarkerContext db = new DigitalBoardMarkerContext(); for (int i = 1; i < UsersList.Count; i++) { UserAssignedGroups g = new UserAssignedGroups(); g.UserId = Convert.ToInt32(UsersList[i]); g.UserGroupId = db.UserGroups.Where(b => b.Name == obj.group).SingleOrDefault().Id; if (db.UserAssignedGroups.Any(b => b.UserId == g.UserId && b.UserGroupId == g.UserGroupId)) { ModelState.AddModelError("", "This User already assigned to that group"); break; } db.Add(g); } db.SaveChanges(); return(Ok()); }