Пример #1
0
        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));
        }
Пример #2
0
        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);
        }
Пример #3
0
        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));
        }
Пример #4
0
        public async Task <IDataPagging> GetAll(GetAllUserParameters parameters)
        {
            var repositoryResult = await _userServices.GetUsers(parameters);

            return(repositoryResult);
        }