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) )); }
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)); }
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); }
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) )); }