public async Task <IActionResult> GetUsersList(GetUsersListRequest request) { var users = _mongoDbService.GetCollection <ApplicationUser>(Collections.Users).AsQueryable(); var roles = _mongoDbService.GetCollection <ApplicationRole>(Collections.Roles).AsQueryable(); if (!string.IsNullOrWhiteSpace(request.RoleId)) { users = users.Where(x => x.Roles.Contains(request.RoleId)); } if (!string.IsNullOrWhiteSpace(request.SearchQuery)) { users = users.Where(x => x.FullName.ToLower().Contains(request.SearchQuery.ToLower().Trim()) || x.Address.ToLower().Contains(request.SearchQuery.ToLower().Trim()) || x.Email.ToLower().Contains(request.SearchQuery.ToLower().Trim())); } var totalItemCount = await users.CountAsync(); var usersList = await users .ApplyOrdering(request.SortBy, request.SortDesc) .ApplyPaging(request.Page, request.PageSize) .ToListAsync(); var rolesList = await roles .ToListAsync(); var resources = new PagedListResource() { TotalItemCount = totalItemCount, ItemsList = usersList .Select(item => { var roleId = item.Roles.First(); var role = rolesList.FirstOrDefault(r => r.Id.ToString().Equals(roleId)); return(new { item.Id, item.FullName, item.Address, item.PhoneNumber, item.Email, item.Enabled, Role = new { role.Id, Name = role.Name.ToUpper() } }); }) .ToList() }; return(new SuccessResult(resources)); }
public void GetUserList() { try { GetUsersListRequest request = null; GetUsersListResponse response = null; request = new GetUsersListRequest(); response = _userService.GetUserList(request); Assert.IsTrue(response.IsSucess && response.Users != null && response.Users.Count > 0); request = new GetUsersListRequest() { SearchValue = "hy", SearchProperty = "Name" }; response = _userService.GetUserList(request); Assert.IsTrue(response.IsSucess && response.Users != null && response.Users.Count > 0); } catch (Exception ex) { Assert.IsTrue(false); } }
public GetUsersListResponse GetUserList(GetUsersListRequest request) { GetUsersListResponse response = new GetUsersListResponse(); try { using (IUnitOfWork unitOfWork = RepositoryFactory.GetUnitOfWork()) { if (request == null) { throw new Exception("null Input!"); } IUserRepository userRepository = RepositoryFactory.Get(typeof(IUserRepository), unitOfWork) as IUserRepository; IRoleRepository roleRepository = RepositoryFactory.Get(typeof(IRoleRepository), unitOfWork) as IRoleRepository; List <Role> roles = roleRepository.GetAll().ToList(); List <User> list = null; if (request.SearchProperty != null && request.SearchProperty != string.Empty) { if (typeof(User).GetProperty(request.SearchProperty) != null) { list = userRepository.GetAll().Where(LambdaConstruct.ParameterPropertyEqualConstant <User>(request.SearchProperty, request.SearchValue)).ToList(); } else { throw new Exception("no SearchProperty in GetUserlist of Userservice!"); } } else { list = userRepository.GetAll().ToList(); } if (list == null) { throw new Exception("no User in GetUserList of UserService!"); } response.Users = new List <ViewModels.UserView>(); foreach (var item in list) { Role role = roles.Where(it => it.Id == item.RoleId).FirstOrDefault(); if (role == null) { throw new Exception("no Role in GetUserList of UserService!"); } else { ViewModels.UserView useView = new ViewModels.UserView() { Id = item.Id.ToString(), Name = item.Name, Password = item.Password, Duty = item.Duty, Email = item.Email, RoleId = item.RoleId, RoleName = role.Name }; response.Users.Add(useView); } } response.IsSucess = true; } } catch (Exception ex) { Log.Write(ex.Message); response.IsSucess = false; response.Message = ex.Message; } return(response); }