Пример #1
0
        public async Task <ActionResult <List <UserViewModel> > > UsersAsync()
        {
            UserListCommand userCommand = new UserListCommand {
            };

            return(await Mediator.Send(userCommand));
        }
        public async Task <ApiListResponse <UserModel> > Handle(UserListCommand request, CancellationToken cancellationToken)
        {
            _logger.LogInformation($"Searching for Users with the following filters (NgoId, Name): {request.NgoId}, {request.Name}");

            IQueryable <Entities.User> users = _context.Users
                                               .Include(u => u.Ngo)
                                               .Include(u => u.Notes)
                                               .Include(u => u.Beneficiaries)
                                               .Where(u => u.Deleted == false);

            if (request.NgoId > 0)
            {
                users = users.Where(u => u.NgoId == request.NgoId);
            }

            if (!string.IsNullOrEmpty(request.Name))
            {
                users = users.Where(u => u.Name.Contains(request.Name));
            }

            var count = await users.CountAsync(cancellationToken);

            var requestedPageObservers = GetPagedQuery(users.OrderBy(u => u.Name), request.Page, request.PageSize)
                                         .ToList()
                                         .Select(_mapper.Map <UserModel>);


            return(new ApiListResponse <UserModel>
            {
                TotalItems = count,
                Data = requestedPageObservers.ToList(),
                Page = request.Page,
                PageSize = request.PageSize
            });
        }