public async Task <LazyRoleViewModel> LazyRolesByUser(int userId, int take, int skip, string nameFilter = null) { var query = _identityContext.UserRoles.Where(w => w.UserId == userId) .Join(_identityContext.Roles, ur => ur.RoleId, r => r.Id, (ur, r) => new { ur, r }) .Select(s => s.r).Distinct() .Where(x => x.Name.Contains(!string.IsNullOrEmpty(nameFilter) ? nameFilter : string.Empty)); var count = await query.CountAsync(); var roles = query .Select(s => new RoleViewModel { Id = s.Id, Name = s.Name }) .OrderBy(o => o.Name) .Skip(skip) .Take(take) .ToListAsync(); var lazyRoleViewModel = new LazyRoleViewModel { Roles = await roles, Count = count }; return(lazyRoleViewModel); }
public async Task <LazyRoleViewModel> LazyRoles(int take, int skip, string nameFilter = null) { var query = _identityContext.Roles .Where(x => x.Name.Contains(!string.IsNullOrEmpty(nameFilter) ? nameFilter : string.Empty)); var count = await query.CountAsync(); var roles = query .Select(s => new RoleViewModel { Id = s.Id, Name = s.Name }) .OrderBy(o => o.Name) .Skip(skip) .Take(take) .ToListAsync(); var lazyRoleViewModel = new LazyRoleViewModel { Roles = await roles, Count = count }; return(lazyRoleViewModel); }