public async Task <UserSearchParams> Search(UserSearchResult request) { string anywhere = $"%{request.Anywhere}%"; var query = userManager.Users .Include(u => u.UserTopics) .ThenInclude(ut => ut.Topic) .Where(u => EF.Functions.Like(u.UserName, anywhere) || EF.Functions.Like(u.Email, anywhere)); if (request.UserName != null) { query = query.Where(u => EF.Functions.Like(u.UserName, $"%{request.UserName}%")); } if (request.Email != null) { query = query.Where(u => EF.Functions.Like(u.Email, $"%{request.Email}%")); } var count = await query.CountAsync(); query = query.Skip((request.Page - 1) * request.CountPerPage) .Take(request.CountPerPage); var list = await query.Select(u => DbMapper.MapDbUser(u)).ToListAsync(); return(new UserSearchParams() { Page = request.Page, PageSize = request.CountPerPage, PageCount = (int)Math.Ceiling(((float)count) / request.CountPerPage), Count = count, Users = list, }); }
public async Task <ICollection <User> > GetAllUser() { return(await userManager.Users .Include(u => u.UserTopics) .ThenInclude(ut => ut.Topic) .Select(u => DbMapper.MapDbUser(u)) .ToListAsync()); }
public async Task <User> GetByName(string name) { var dbUser = await dbcontext.Users .Include(u => u.UserTopics) .ThenInclude(ut => ut.Topic) .FirstOrDefaultAsync(u => u.UserName == name); return(DbMapper.MapDbUser(dbUser)); }
public async Task <ICollection <User> > GetUsersByTopic(Topic topic) { return(await dbcontext.Users .Include(u => u.UserTopics) .ThenInclude(ut => ut.Topic) .Where(u => u.UserTopics.FirstOrDefault(ut => ut.TopicId == topic.Id) != null) .Select(u => DbMapper.MapDbUser(u)) .ToListAsync()); }
public async Task <ICollection <User> > GetUsersPaged(int pagenum, int pagesize = 16) { return(await userManager.Users .Include(u => u.UserTopics) .ThenInclude(ut => ut.Topic) .Select(u => DbMapper.MapDbUser(u)) .Skip((pagenum - 1) * pagesize) .Take(pagesize) .ToListAsync()); }
public async Task <(User, string)> GetPasswordRecoveryToken(string username) { var dbuser = await dbcontext.Users .Include(u => u.UserTopics) .ThenInclude(ut => ut.Topic) .FirstOrDefaultAsync(u => u.UserName == username); if (dbuser == null) { return(null, null); } var token = await userManager.GeneratePasswordResetTokenAsync(dbuser); return(DbMapper.MapDbUser(dbuser), token); }
public async Task <ICollection <User> > List() { return(await dbcontext.Users.Select(u => DbMapper.MapDbUser(u)).ToListAsync()); }