Example #1
0
        public Result <PagedListResponse <UserDto> > Execute(GetUsersPagedListRequest request)
        {
            try
            {
                var response = new PagedListResponse <UserDto>();

                var userRepository = Uow.GetRepository <User>();
                var usersQuery     = userRepository
                                     .AsQueryable()
                                     .Where(u => u.IsDeleted == false);

                usersQuery = ProcessRequest(request, usersQuery);

                response.Items = usersQuery
                                 .Include(u => u.UserRoles)
                                 .ThenInclude(ur => ur.Role)
                                 .ApplyPagedListRequest(request, response)
                                 .ToArray()
                                 .Select(UserDto.MapFromUser)
                                 .ToArray();

                return(Result <PagedListResponse <UserDto> > .Ok(response));
            }
            catch (Exception exception)
            {
                return(Result <PagedListResponse <UserDto> > .Fail(null, exception.Message));
            }
        }
Example #2
0
        private static IQueryable <User> ProcessRequest(GetUsersPagedListRequest request, IQueryable <User> usersQuery)
        {
            if (request.HasRequestFirstName)
            {
                usersQuery = usersQuery.Where(u => u.FirstName.Trim().ToLower().Contains(request.FirstName.Trim().ToLower()));
            }

            if (request.HasRequestMiddleName)
            {
                usersQuery = usersQuery.Where(u => u.MiddleName.Trim().ToLower().Contains(request.MiddleName.Trim().ToLower()));
            }

            if (request.HasRequestSecondName)
            {
                usersQuery = usersQuery.Where(u => u.SecondName.Trim().ToLower().Contains(request.SecondName.Trim().ToLower()));
            }

            if (request.HasRequestPosition)
            {
                usersQuery = usersQuery.Where(u => u.Position.Trim().ToLower().Contains(request.Position.Trim().ToLower()));
            }

            if (request.HasRequestInn)
            {
                usersQuery = usersQuery.Where(u => u.Inn.Contains(request.Inn));
            }

            if (request.HasRequestBirthdate)
            {
                usersQuery = usersQuery.Where(u => u.Birthdate == request.Birthdate);
            }

            if (request.HasRequestAddress)
            {
                usersQuery = usersQuery.Where(u => u.Address.Trim().ToLower().Contains(request.Address.Trim().ToLower()));
            }

            if (request.HasRequestIsActive)
            {
                usersQuery = usersQuery.Where(u => u.IsActive == request.IsActive);
            }

            if (request.HasRole)
            {
                usersQuery = usersQuery.Where(u => u.UserRoles.Any(r => r.RoleId == request.RoleId));
            }

            return(usersQuery);
        }
        public void GetUsersPagedList_ReturnList_Success()
        {
            var executor = GetExecutor();

            var userPagedListRequest = new GetUsersPagedListRequest
            {
                Skip = 0,
                Take = 10
            };
            var users = executor.GetQuery <GetUsersPagedListQuery>().Process(c => c.Execute(userPagedListRequest));

            users.Should().NotBeNull();
            users.IsFailure.Should().BeFalse(users.Error);
            users.IsSuccess.Should().BeTrue();
            users.Error.Should().BeNullOrEmpty();
            users.Value.Should().NotBeNull();
            users.Value.TotalCount.Should().BeGreaterThan(0);
            users.Value.Items.Should().NotBeNullOrEmpty();
            users.Value.Items.Length.Should().BeGreaterThan(0);
        }
 public Result <PagedListResponse <UserDto> > GetUsersPagedList([FromBody] GetUsersPagedListRequest request)
 {
     return(Executor.GetQuery <GetUsersPagedListQuery>().Process(q => q.Execute(request)));
 }
Example #5
0
 public async ValueTask <Result <PagedListResponse <UserDto> > > GetUsersPagedList(GetUsersPagedListRequest usersPagedListRequest)
 {
     return(await ProcessPostRequest <Result <PagedListResponse <UserDto> >, GetUsersPagedListRequest>("api/users/getUsersPagedList", usersPagedListRequest));
 }