Beispiel #1
0
        public async Task <IActionResult> Index(AdminUserIndexViewModel model)
        {
            var filter = new AdminUserIndexFilter {
                Email       = model.Filter.Email,
                PageIndex   = model.Filter.PageIndex,
                PageSize    = model.Filter.PageSize,
                PhoneNumber = model.Filter.PhoneNumber,
                Status      = model.Filter.Status,
                Title       = model.Filter.Title,
                UserName    = model.Filter.UserName
            };

            var result = await _userService.GetAdminIndexAsyc(filter);

            var index = result.Adapt <AdminUserIndexViewModel>();

            index.DataSource.HasFilter = true;

            foreach (var user in index.DataSource.Items)
            {
                user.Checked = true;
            }

            return(await Task.FromResult(
                       View(index)
                       ));
        }
Beispiel #2
0
        public async Task <AdminUserIndexDto> GetAdminIndexAsyc(AdminUserIndexFilter filter)
        {
            filter.CheckArgumentIsNull(nameof(filter));

            var query = _repository
                        .Query()
                        .SetFilter(filter);

            var result = new AdminUserIndexDto();

            result.DataSource.TotalCount = await query.CountAsync();

            result.DataSource.PageIndex = filter.PageIndex;
            result.DataSource.PageSize  = filter.PageSize;

            query = query
                    .Skip(filter.StartIndex)
                    .Take(filter.PageSize);

            var users = await query.ToListAsync();

            result.DataSource.Items = users
                                      .Select(_ => _.Adapt <AdminUserIndexItemDto>())
                                      .ToList();

            return(await Task.FromResult(result));
        }
Beispiel #3
0
        public static IQueryable <User> SetFilter(
            this IQueryable <User> query,
            AdminUserIndexFilter filter)
        {
            filter.CheckArgumentIsNull(nameof(filter));

            if (!filter.Title.IsNullOrEmpty())
            {
                query = query.Where(_ => _.Title.Contains(filter.Title));
            }

            if (!filter.UserName.IsNullOrEmpty())
            {
                query = query.Where(_ => _.UserName.Contains(filter.UserName));
            }

            if (!filter.Email.IsNullOrEmpty())
            {
                query = query.Where(_ => _.Email.Contains(filter.Email));
            }

            if (!filter.PhoneNumber.IsNullOrEmpty())
            {
                query = query.Where(_ => _.PhoneNumber.Contains(filter.PhoneNumber));
            }

            if (filter.Status.HasValue)
            {
                query = query.Where(_ => _.Status == filter.Status.Value);
            }

            return(query);
        }
Beispiel #4
0
        public async Task <IActionResult> Index(int page = 1)
        {
            var filter = new AdminUserIndexFilter {
                PageIndex = page - 1,
                PageSize  = 10
            };

            var result = await _userService.GetAdminIndexAsyc(filter);

            var model = result.Adapt <AdminUserIndexViewModel>();

            model.Filter.PageIndex = filter.PageIndex;
            model.Filter.PageSize  = filter.PageSize;

            return(await Task.FromResult(
                       View(model)
                       ));
        }