public ActionResult List(CampaignListViewModelFilter model) { if (Session == null) { return(Json(true)); } Session[FilterSettingsKey.CampaignControllerFilterList.ToString()] = model; PageSettings.RemoveFromSession(PageSettingsKey.CampaignPageSettings); return(Json(true)); }
/// <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) { var query = (IQueryable <Campaign>)_query; dynamic filter1 = _filter; CampaignListViewModelFilter filter = filter1; query = query.Where(q => UserRole == "Admin" || UserID == q.UserId); if (filter != null) { if (filter.FilterActive.HasValue) { query = query.Where(q => q.IsActive == filter.FilterActive.Value); } if (filter.FilterStartDateFrom.HasValue) { query = query.Where(q => filter.FilterStartDateFrom.Value <= q.StartDate); } if (filter.FilterStartDateTo.HasValue) { query = query.Where(q => filter.FilterStartDateTo.Value >= q.StartDate); } if (filter.FilterEndDateFrom.HasValue) { query = query.Where(q => filter.FilterEndDateFrom.Value <= q.EndDate); } if (filter.FilterEndDateTo.HasValue) { query = query.Where(q => filter.FilterEndDateTo.Value >= q.EndDate); } if (filter.FilterPriorityId.HasValue && filter.FilterPriorityId.Value != SelectListExt.EmptyOptionValue) { var priorityId = filter.FilterPriorityId.Value; query = query.Where(q => q.PriorityId == priorityId); } if (!string.IsNullOrEmpty(filter.FilterName)) { query = query.Where(q => q.Name.ToLower().Contains(filter.FilterName.ToLower())); } if (!string.IsNullOrEmpty(filter.FilterLogin)) { query = query.Where(q => q.User.Name.ToLower().Contains(filter.FilterLogin.ToLower())); } } filter.Priorities = new SelectList(_priorityRepository.Priorities.ToList(), "Id", "Name"); filter.YesNo = new SelectList(YesNoDictionary.GetList(), "Value", "Key"); _query = (IQueryable <Q>)query; filter1 = filter; return((T)filter1); }