public async Task <AdminContactIndexDto> GetAdminIndexAsync( AdminContactIndexFilter filter) { filter.CheckArgumentIsNull(nameof(filter)); var query = _repository .Query() .Where(_ => _.WebsiteId == _userContext.WebsiteId) .SetFilter(filter); var result = new AdminContactIndexDto(); 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 contacts = await query.ToListAsync(); await setSentMessagesToViewed(contacts); await setViewedMessagesToRead(contacts); result.DataSource.Items = contacts .Select(_ => _.Adapt <AdminContactIndexItemDto>()) .ToList(); return(await Task.FromResult(result)); }
public async Task <IActionResult> Index(AdminContactIndexViewModel model) { var filter = new AdminContactIndexFilter { Email = model.Filter.Email, Name = model.Filter.Name, PageIndex = model.Filter.PageIndex, PageSize = model.Filter.PageSize }; var result = await _contactService.GetAdminIndexAsync(filter); model = result.Adapt <AdminContactIndexViewModel>(); model.DataSource.HasFilter = true; return(View(model)); }
public static IQueryable <Contact> SetFilter( this IQueryable <Contact> query, AdminContactIndexFilter filter) { if (!filter.Name.IsNullOrEmpty()) { query = query.Where(_ => _.Name.Contains(filter.Name)); } if (!filter.Email.IsNullOrEmpty()) { query = query.Where(_ => _.Email.Contains(filter.Email)); } return(query); }
public async Task <IActionResult> Index(int page = 1) { var filter = new AdminContactIndexFilter { PageSize = 10, PageIndex = page - 1 }; var result = await _contactService.GetAdminIndexAsync(filter); var model = result.Adapt <AdminContactIndexViewModel>(); model.Filter.PageIndex = filter.PageIndex; model.Filter.PageSize = filter.PageSize; return(await Task.FromResult( View(model) )); }