/// <summary> /// Customowe filtrowanie /// </summary> /// <typeparam name="T">Typ filtru</typeparam> /// <param name="_query">Zbiór encji</param> /// <param name="_filter">filtr</param> /// <returns></returns> protected override T FilterSettingsVirtual <T, Q>(ref IQueryable <Q> _query, T _filter) { if (_query is IQueryable <User> ) { var query = (IQueryable <User>)_query; dynamic filter1 = _filter; UserListViewModelFilter filter = filter1; var doFiltering = filter != null && filter.Filtering; if (doFiltering) { if (!string.IsNullOrEmpty(filter.FilterLogin)) { query = query.Where(q => q.Name.ToLower().Contains(filter.FilterLogin.ToLower())); } if (!string.IsNullOrEmpty(filter.FilterFirstName)) { query = query.Where(q => q.FirstName.ToLower().Contains(filter.FilterFirstName.ToLower())); } if (!string.IsNullOrEmpty(filter.FilterLastName)) { query = query.Where(q => q.LastName.ToLower().Contains(filter.FilterLastName.ToLower())); } if (filter.FilterRolaId.HasValue) { query = query.Where(q => q.Role.Id == filter.FilterRolaId); } if (filter.FilterBlocked.HasValue) { query = query.Where(q => q.IsBlocked == filter.FilterBlocked); } } filter.FilterRole = new SelectList(_roles.Roles.ToList(), "Id", "Name"); filter.YesNo = new SelectList(YesNoDictionary.GetList(), "Value", "Key"); _query = (IQueryable <Q>)query; filter1 = filter; return((T)filter1); } var queryR = (IQueryable <Role>)_query; dynamic filter1R = _filter; RoleListViewModelFilter filterR = filter1R; var doFilteringR = filterR != null && filterR.Filtering; if (doFilteringR) { if (!string.IsNullOrEmpty(filterR.FilterName)) { queryR = queryR.Where(q => q.Name.ToLower().Contains(filterR.FilterName.ToLower())); } if (filterR.Com.HasValue) { queryR = queryR.Where(q => q.Commission == filterR.Com.Value); } } _query = (IQueryable <Q>)queryR; filter1R = filterR; return((T)filter1R); }
public ActionResult ListRole(RoleListViewModelFilter model) { //Zapamiętanie aktualnych filtrów if (Session != null) { Session[FilterSettingsKey.RoleFilterList.ToString()] = model; PageSettings.RemoveFromSession(PageSettingsKey.RolePageSettings); } return(Json(true)); }