public async Task <QueryResult <UserViewModel> > GetUsersViewAsync(ApplicationUserQuery queryObj) { var result = new QueryResult <UserViewModel>(); var query = (from u in context.Users join uc in context.UserClaims on u.Id equals uc.UserId where uc.ClaimType.Equals(Policies.RoleClaimTypeValue) select new UserViewModel { Id = u.Id, FirstName = u.FirstName, LastName = u.LastName, IdentificationCard = u.IdentificationCard, UserName = u.UserName, Email = u.Email, Role = uc.ClaimValue, IsActive = u.IsActive }).AsQueryable(); query = query.ApplyFiltering(queryObj); var columnsMap = new Dictionary <string, Expression <Func <UserViewModel, object> > >() { ["firstName"] = u => u.FirstName, ["lastName"] = u => u.LastName, ["identificationCard"] = u => u.IdentificationCard, ["userName"] = u => u.UserName, ["email"] = u => u.Email }; query = query.ApplyOrdering(queryObj, columnsMap); result.TotalItems = await query.CountAsync(); query = query.ApplyPaging(queryObj); result.Items = await query.ToListAsync(); return(result); }
public static IEnumerable<ApplicationUserViewModel> GetUsersInRole( this IUrfIdentityRepositoryAsync<ApplicationUser> repository, Guid roleId) { var query = new ApplicationUserQuery().SelectByRole(roleId); return repository .Query(query) .OrderBy( u => u.OrderBy(x => x.UserDetails.LastName) .ThenBy(x => x.UserDetails.FirstName)) .Select( u => new ApplicationUserViewModel { UserId = u.Id, Email = u.Email, FirstName = u.UserDetails.FirstName, LastName = u.UserDetails.LastName }); }
GetUsersInRole( this IUrfIdentityRepositoryAsync <ApplicationUser> repository, Guid roleId) { var query = new ApplicationUserQuery().SelectByRole(roleId); return(repository .Query(query) .OrderBy( u => u.OrderBy(x => x.UserDetails.LastName) .ThenBy(x => x.UserDetails.FirstName)) .Select( u => new ApplicationUserViewModel { UserId = u.Id, Email = u.Email, FirstName = u.UserDetails.FirstName, LastName = u.UserDetails.LastName })); }
public async Task <QueryResult <UserViewModel> > GetUsersViewAsync(ApplicationUserQuery queryObj) { return(await unitOfWork.UserRepository.GetUsersViewAsync(queryObj)); }
public static IQueryable <UserViewModel> ApplyFiltering(this IQueryable <UserViewModel> query, ApplicationUserQuery queryObj) { if (!string.IsNullOrEmpty(queryObj.FirstName)) { query = query.Where(c => c.FirstName.Contains(queryObj.FirstName.Trim())); } if (!string.IsNullOrEmpty(queryObj.LastName)) { query = query.Where(c => c.LastName.Contains(queryObj.LastName.Trim())); } if (!string.IsNullOrEmpty(queryObj.IdentificationCard)) { query = query.Where(c => c.IdentificationCard.Contains(queryObj.IdentificationCard.Trim())); } if (!string.IsNullOrEmpty(queryObj.UserName)) { query = query.Where(c => c.UserName.Contains(queryObj.UserName.Trim())); } if (!string.IsNullOrEmpty(queryObj.Email)) { query = query.Where(c => c.Email.Contains(queryObj.Email.Trim())); } if (!string.IsNullOrEmpty(queryObj.Role)) { query = query.Where(c => c.Role.Contains(queryObj.Role.Trim())); } return(query); }