Esempio n. 1
0
        public IQueryable <UserEntity> GetUsersQuery(UserListFilter filter, List <long> userIds, UsersIncludes includes)
        {
            var query = GetBaseQuery(includes, false)
                        .Where(o => o.GuildID == filter.Guild.Id.ToString());

            if (userIds != null)
            {
                query = query.Where(o => userIds.Contains(o.ID));
            }

            if (!string.IsNullOrEmpty(filter.InviteCode))
            {
                query = query.Where(o => o.UsedInviteCode.Contains(filter.InviteCode));
            }

            if (filter.OnlyWebAdmin)
            {
                query = query.Where(o => o.WebAdminPassword != null);
            }

            if (filter.OnlyApiAccess)
            {
                query = query.Where(o => o.ApiToken != null);
            }

            if (filter.OnlyBotAdmin)
            {
                query = query.Where(o => (o.Flags & (int)UserFlags.BotAdmin) != 0);
            }

            return(OrderUsers(query, filter.Desc, filter.Order));
        }
Esempio n. 2
0
        public ListResult <UserListItem> List(ListCommand cmd, UserListFilter filter, IEnumerable <int> selectedIDs = null)
        {
            var list = UserRepository.List(cmd, filter, selectedIDs, out var totalRecords);

            return(new ListResult <UserListItem>
            {
                Data = list.ToList(),
                TotalRecords = totalRecords
            });
        }
Esempio n. 3
0
        public ActionResult _Index(
            string tabId,
            int parentId,
            GridCommand command,
            [Bind(Prefix = "searchQuery")][ModelBinder(typeof(JsonStringModelBinder <UserListFilter>))] UserListFilter filter)
        {
            var serviceResult = _service.List(command.GetListCommand(), filter);

            return(new TelerikResult(serviceResult.Data, serviceResult.TotalRecords));
        }
Esempio n. 4
0
        public ActionResult _MultipleSelect(
            string tabId, [FromForm(Name = "IDs")] string ids, int page, int pageSize, string orderBy,
            [Bind(Prefix = "searchQuery")]
            [ModelBinder(typeof(JsonStringModelBinder <UserListFilter>))] UserListFilter filter)
        {
            var selectedIDs   = Converter.ToInt32Collection(ids, ',');
            var listCommand   = GetListCommand(page, pageSize, orderBy);
            var serviceResult = _service.List(listCommand, filter, selectedIDs);

            return(new TelerikResult(serviceResult.Data, serviceResult.TotalRecords));
        }
Esempio n. 5
0
        public ActionResult _MultipleSelect(
            string tabId,
            string IDs,
            GridCommand command,
            [Bind(Prefix = "searchQuery")][ModelBinder(typeof(JsonStringModelBinder <UserListFilter>))] UserListFilter filter)
        {
            var selectedIDs   = Converter.ToInt32Collection(IDs, ',');
            var serviceResult = _service.List(command.GetListCommand(), filter, selectedIDs);

            return(new TelerikResult(serviceResult.Data, serviceResult.TotalRecords));
        }
Esempio n. 6
0
        public async Task <IEnumerable <UserDto> > GetAll(ApiFilter filter)
        {
            var result = new List <UserDto>();

            try
            {
                var query = _context.Users.AsQueryable();

                var _filter = new UserListFilter();

                if (!string.IsNullOrEmpty(filter.Filter))
                {
                    _filter = JsonConvert.DeserializeObject <UserListFilter>(filter.Filter);
                }

                // Registros a limitar
                query.Take(filter.Take);

                // Condiciones
                query = query.Where(x => _filter.Name == null || (x.Name + "" + x.Lastname).Contains(_filter.Name));

                // Ordenamiento
                if (!string.IsNullOrEmpty(filter.Sort))
                {
                    if (filter.Sort.ToLower().Equals("name"))
                    {
                        if (!filter.Descending)
                        {
                            query = query.OrderBy(x => x.Name);
                        }
                        else
                        {
                            query = query.OrderByDescending(x => x.Name);
                        }
                    }
                }

                // Iteramos para mapear el automapper
                foreach (var user in await query.ToListAsync())
                {
                    result.Add(
                        Mapper.Map <UserDto>(user)
                        );
                }
            }
            catch (Exception e)
            {
                // Error logging
            }

            return(result);
        }
Esempio n. 7
0
        public ActionResult _Index(
            string tabId,
            int parentId,
            int page,
            int pageSize,
            [Bind(Prefix = "searchQuery")][ModelBinder(typeof(JsonStringModelBinder <UserListFilter>))] UserListFilter filter,
            string orderBy)
        {
            var listCommand   = GetListCommand(page, pageSize, orderBy);
            var serviceResult = _service.List(listCommand, filter);

            return(new TelerikResult(serviceResult.Data, serviceResult.TotalRecords));
        }
Esempio n. 8
0
        public async Task No_Ambiguous_List_Calls()
        {
            // This test simply ensures each of the three ListAsync methods can be called without an ambiguous call error
            var userFilter        = new UserListFilter();
            var listFilter        = userFilter.AsListFilter();
            var cancellationToken = new CancellationTokenSource().Token;

            var result = await Fixture.Service.ListAsync();

            result = await Fixture.Service.ListAsync(cancellationToken);

            result = await Fixture.Service.ListAsync(userFilter);

            result = await Fixture.Service.ListAsync(userFilter, cancellationToken);

            result = await Fixture.Service.ListAsync(listFilter);

            result = await Fixture.Service.ListAsync(listFilter, cancellationToken);
        }
Esempio n. 9
0
        internal static IEnumerable <UserListItem> List(ListCommand cmd, UserListFilter filter, IEnumerable <int> selectedIDs, out int totalRecords)
        {
            using (var scope = new QPConnectionScope())
            {
                var options = new UserPageOptions
                {
                    SortExpression = !string.IsNullOrWhiteSpace(cmd.SortExpression) ? UserListItem.TranslateSortExpression(cmd.SortExpression) : null,
                    StartRecord    = cmd.StartRecord,
                    PageSize       = cmd.PageSize,
                    SelectedIDs    = selectedIDs
                };

                if (filter != null)
                {
                    options.Email     = filter.Email;
                    options.FirstName = filter.FirstName;
                    options.LastName  = filter.LastName;
                    options.Login     = filter.Login;
                }

                var rows = Common.GetUserPage(scope.DbConnection, options, out totalRecords);
                return(MapperFacade.UserListItemRowMapper.GetBizList(rows.ToList()));
            }
        }
Esempio n. 10
0
 public async Task <object> PostUserFilter(UserListFilter filter)
 => await ApplyFilterAsync(filter).ConfigureAwait(false);
Esempio n. 11
0
 /// <summary>
 /// Gets a list of up to 250 of the users.
 /// </summary>
 public virtual async Task <ListResult <User> > ListAsync(UserListFilter filter, CancellationToken cancellationToken = default)
 {
     return(await ListAsync(filter?.AsListFilter(), cancellationToken));
 }
Esempio n. 12
0
        /// <summary>
        /// Method to get all users
        /// </summary>
        /// <param name = "filter"> Filter </param>
        /// <returns> </returns>
        public async Task <UserListVm> GetAllPagedAsync(UserListFilter filter)
        {
            var query = _context.Users.AsNoTracking();

            if (filter.Status.HasValue)
            {
                query = query.Where(u => u.Status == filter.Status.Value);
            }
            if (filter.RoleId != null)
            {
                query = query.Where(u => u.UserRoles.Any(v => v.RoleId == filter.RoleId));
            }
            if (filter.UserName != null)
            {
                query = query.Where(u => u.Name.ToLower().Contains(filter.UserName.ToLower()));
            }
            if (filter.Description != null)
            {
                query = query.Where(u => u.Description.Contains(filter.Description));
            }

            var total = query.Count();

            var orderable = total == 0
                ? Array.Empty <UserListItemVm>().AsQueryable()
                : query.Select(UserListItemVm.Creator);

            if (filter.SortBy != null)
            {
                //TODO: USE LINQ DYNAMIC + ATTRIBUTES
                switch (filter.SortBy.UpperFirstLetter())
                {
                case nameof(UserListItemVm.Name):
                    orderable = Order(orderable, v => v.Name, filter.SortAscending);
                    break;

                case nameof(UserListItemVm.CreationDate):
                    orderable = Order(orderable, v => v.CreationDate, filter.SortAscending);
                    break;

                case nameof(UserListItemVm.Description):
                    orderable = Order(orderable, v => v.Description, filter.SortAscending);
                    break;

                default:
                    orderable = Order(orderable, v => v.Status, filter.SortAscending);
                    break;
                }
            }

            var users = orderable
                        .Skip(Pagination.CalculateSkip(filter.PageSize, filter.Page, total))
                        .Take(filter.PageSize);

            var usersList = users.ToList();

            var userIds = usersList.Select(v => v.Id).ToList();

            var roles = from userRole in _context.UserRoles
                        join role in _context.Roles on userRole.RoleId equals role.Id
                        where userIds.Contains(userRole.UserId)
                        select new
            {
                userRole.UserId,
                role.Id,
                role.Name
            };

            var lookup = roles.ToLookup(
                v => v.UserId,
                v => new UserRoleVm {
                Id = v.Id, Name = v.Name
            }
                );
            var allRegions = await _regionsService.GetAllRegionTreeAsync(nameof(Resource.UserRegions));

            foreach (var user in usersList)
            {
                user.Roles = lookup[user.Id].ToList();
            }

            return(UserListVm.Create(
                       usersList,
                       allRegions,
                       total,
                       (int)Math.Ceiling((double)total / filter.PageSize)
                       ));
        }
Esempio n. 13
0
        public async Task <IActionResult> GetAllUsers([FromQuery] UserListFilter filter)
        {
            var users = await _userService.GetAllPagedAsync(filter);

            return(Ok(users));
        }
Esempio n. 14
0
 public Task <IEnumerable <UserInfo> > GetUserListAsync(UserListFilter filter)
 {
     throw new NotImplementedException();
 }