public IActionResult Users(string role, int id, bool adding = true) { String search = Request.Query["search[value]"]; List <User> allUsers = new List <Models.User>(); int recordsTotal = 0; int recordsFiltered = 0; using (var db = new ClassroomContext()) { if (!string.IsNullOrEmpty(search)) { allUsers = db.Users.Where(u => (u.Username.Contains(search) || u.Firstname.Contains(search) || u.Lastname.Contains(search) || u.Schoolname.Contains(search))).Include(u => u.UserRole).ToList <User>(); } else { allUsers = db.Users.Include(u => u.UserRole).Include(u => u.StudentClassrooms) .ToList <User>(); } allUsers.ForEach( u => u.UserRole.ForEach( ur => db.Entry(ur) .Reference(r => r.Role).Load())); if (!string.IsNullOrEmpty(role)) { allUsers.RemoveAll(u => u.UserRole.Where(ur => ur.Role.Slug.ToLower() == role).Count() == 0); } if (id != 0) { if (adding == true) { allUsers.RemoveAll(u => u.StudentClassrooms.Where(sc => sc.ClassroomId == id).Count() > 0); } else { allUsers.RemoveAll(u => u.StudentClassrooms.Where(sc => sc.ClassroomId == id).Count() == 0); } } recordsTotal = db.Users.Count(); recordsFiltered = allUsers.Count(); } var data = new List <Object>(); allUsers.ForEach(u => { var user = new List <String>(); user.Add(u.Id.ToString()); user.Add(u.Username); user.Add(u.Address); user.Add(u.City); data.Add(user); }); return(Json(new { data, recordsTotal, recordsFiltered })); }
public IActionResult Users() { List <User> allUsers = new List <Models.User>(); using (var db = new ClassroomContext()) { allUsers = db.Users.Include(u => u.UserRole) .ToList <User>(); allUsers.ForEach( u => u.UserRole.ForEach( ur => db.Entry(ur) .Reference(r => r.Role).Load())); } return(View(allUsers)); }
public IActionResult NewUser(int?id) { using (var db = new ClassroomContext()) { ViewData["roles"] = db.Roles.ToList(); } if (id != null) { using (var db = new ClassroomContext()) { var user = db.Users.Include(u => u.UserRole).Single(r => r.Id == id); user.UserRole.ForEach(u => db.Entry(u).Reference(ur => ur.Role).Load()); return(View(user)); } } return(View(new User())); }