public FindResponse FindBeUsers(FindRequest request) { var response = new FindResponse(); using (var db = DbContext) { var query = db.BeUsers .AsQueryable(); if (!String.IsNullOrEmpty(request.TextSearch)) { request.TextSearch = request.TextSearch.ToStr().Trim().ToLower(); query = query.Where(q => q.Code.ToLower().Contains(request.TextSearch) || q.FullName.ToLower().Contains(request.TextSearch) || q.Email.ToLower().Contains(request.TextSearch) || q.Phone.ToLower().Contains(request.TextSearch) || q.Address.ToLower().Contains(request.TextSearch) || q.Role.Name.ToLower().Contains(request.TextSearch) || q.Position.Name.ToLower().Contains(request.TextSearch) || q.Status.ToString().Contains(request.TextSearch) ); } query = request.IsSortingValid ? request.ApplySortOption(query) : request.ApplyPageOption(query.OrderBy(q => q.FullName)); var pagingResult = request.ApplyPageOption(query).ToList(); response.TotalRecords = query.Count(); response.Results = pagingResult.MapList<BeUser>(); } return response; }
public ActionResult Index(BeUserIndexModel model) { model.InitSortInfo(); if (string.IsNullOrWhiteSpace(model.SortBy)) { model.SortBy = "FullName"; } var filter = new FindRequest { TextSearch = model.TextSearch, SortOption = new SortOption(new[] { new SortItem(model.SortBy, model.SortDirection.Value) }), PageOption = new PageOption { PageSize = model.Pagination.PageSize, PageNumber = model.Pagination.CurrentPageIndex } }; var response = ServiceHelper.BeUser.ExecuteDispose(s => s.FindBeUsers(filter)); model.Results = response.Results.MapList<BeUserModel>(); model.Pagination.TotalRecords = response.TotalRecords; return View(model); }
public FindResponse FindBeUsers(FindRequest request) { return Execute(_repository, r => r.FindBeUsers(request)); }