public async Task <IDataPagging> GetUsers(GetAllUserParameters parameters) { int limit = parameters.PageSize; int offset = (parameters.PageNumber * parameters.PageSize); var users = await _unitOfWork.Repository.FindPaggedAsync(predicate : PredicateBuilderFunction(parameters), skip : offset, take : limit, parameters.OrderByValue); var usesrPagging = users.Item2; if (!usesrPagging.Any()) { var res = ResponseResult.GetRepositoryActionResult(status: HttpStatusCode.NoContent, message: HttpStatusCode.NoContent.ToString()); return(new DataPagging(0, 0, 0, res)); } var usersDto = Mapper.Map <IEnumerable <UserDto> >(usesrPagging); var ids = usersDto.Select(q => Convert.ToString(q?.Id)).ToList(); var userRoles = await _userRolesUnitOfWork.Repository.FindAsync(q => ids.Contains(q.UserId)); var roleIds = userRoles.Select(q => q.RoleId).ToList(); var roles = await _roleUnitOfWork.Repository.FindAsync(q => roleIds.Contains(q.Id)); foreach (var user in usersDto) { var userRoleIds = userRoles.Where(q => q.UserId == user.Id.ToString()).Select(q => q.RoleId).ToList(); var userRolesData = roles.Where(q => userRoleIds.Contains(q.Id)).ToList(); var rolesString = userRolesData.Select(q => q.Name).ToList(); user.Roles = (!rolesString.Any()) ? null : String.Join(",", rolesString); } var repoResult = ResponseResult.GetRepositoryActionResult(usersDto, status: HttpStatusCode.OK, message: HttpStatusCode.OK.ToString()); return(new DataPagging(parameters.PageNumber, parameters.PageSize, users.Item1, repoResult)); }
static Expression <Func <AspNetUsers, bool> > PredicateBuilderFunction(GetAllUserParameters filter) { var predicate = PredicateBuilder.New <AspNetUsers>(true); predicate = predicate.And(b => b.IsDeleted != true); if (!string.IsNullOrWhiteSpace(filter.UserName)) { predicate = predicate.And(b => b.UserName.ToLower().StartsWith(filter.UserName)); } return(predicate); }
public async Task <ActionResult> LoadUserData(UserSearchParameters searchParam) { var draw = Request.Form.GetValues("draw") == null ? "1" : Request.Form.GetValues("draw").FirstOrDefault(); var start = Request.Form.GetValues("start") == null ? "0" : Request.Form.GetValues("start").FirstOrDefault(); var length = Request.Form.GetValues("length") == null ? "10" : Request.Form.GetValues("length").FirstOrDefault(); //Find Order Column var sortColumn = Request.Form.GetValues("order[0][column]") == null ? "" : Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][name]").FirstOrDefault(); var sortColumnDir = Request.Form.GetValues("order[0][dir]") == null ? "asc" : Request.Form.GetValues("order[0][dir]").FirstOrDefault(); var sort = new ReturnObject().GetSortModels((sortColumn == "" ? "Id" : sortColumn), sortColumnDir); int pageSize = length != null?Convert.ToInt32(length) : 0; int skip = start != null?Convert.ToInt32(start) : 0; var parameters = new GetAllUserParameters() { UserName = searchParam.UserName, OrderByValue = sort, PageNumber = skip, PageSize = pageSize }; var returnedData = await restClientContainer.SendRequest <DataPagging>("User/GetAll", RestSharp.Method.POST, parameters); int recordsTotal = returnedData?.TotalPage ?? 0; var data = returnedData?.Result?.Data; if (returnedData == null || returnedData.Result == null || data == null) { return(Json(new { draw = draw, recordsFiltered = 0, recordsTotal = 0, data = new fillGrids.UsersViewModel() }, JsonRequestBehavior.AllowGet)); } string json = JsonConvert.SerializeObject(data); var jsonDeserialize = Helper <List <fillGrids.UsersViewModel> > .Convert(json); var listSerialized = new { draw = draw, recordsFiltered = recordsTotal, recordsTotal = recordsTotal, data = jsonDeserialize }; return(Json(listSerialized, JsonRequestBehavior.AllowGet)); }
public async Task <IDataPagging> GetAll(GetAllUserParameters parameters) { var repositoryResult = await _userServices.GetUsers(parameters); return(repositoryResult); }