public async Task <UserGridDetail[]> GetUserByStatus(FilterUsersInput input) { try { List <UserPoco> result = new List <UserPoco>(); switch (input.Filter) { case UserFilter.LockedOut: result = await _context.Users.Where(x => x.LockoutEnd < DateTime.UtcNow).ToListAsync(); break; case UserFilter.LoggedIn: result = await _context.Users.Where(x => x.LastLoggedIn > DateTime.Now.AddHours(-1)).ToListAsync(); break; case UserFilter.LoggedInLastMonth: result = await _context.Users.Where(x => x.LastLoggedIn > DateTime.Now.AddMonths(-1)).ToListAsync(); break; case UserFilter.NeverLoggedIn: result = await _context.Users.Where(x => x.LastLoggedIn < DateTime.Now.AddMonths(-1)).ToListAsync(); break; } return(result.Select(x => new UserGridDetail { DateRegistered = x.DateRegistered.ToLongDateString(), Email = x.Email, FirstName = x.FirstName, Group = _context.UserGroups.Where(s => s.Id == x.GroupId).FirstOrDefault().Title, Id = x.Id, LastName = x.LastName }).ToArray()); } catch { return(new List <UserGridDetail>().ToArray()); } }
public async Task <JsonResult> GetUserByStatus([FromBody] FilterUsersInput input) { var result = await _user.GetUserByStatus(input); return(await GenerateResult(result, _userSettings)); }