private ReportFilterUserSettings GetPersistedSettings(SPWeb web, string reportId) { var repo = new ReportFilterUserSettingsRepository(web); var searchCriteria = new ReportFilterSearchCriteria { SiteId = web.Site.ID, UserId = web.CurrentUser.ID.ToString(), WebId = web.ID, WebPartId = WebPartHelper.ConvertWebPartIdToGuid(reportId) }; ReportFilterUserSettings userSettings = null; SPSecurity.RunWithElevatedPrivileges(delegate { userSettings = repo.GetUserSettings(searchCriteria); }); return(userSettings); }
public string GetQueryForFilteringTitles(SPList list, Guid reportWebPartGuid) { var titleFilterQuery = string.Empty; var searchCriteria = new ReportFilterSearchCriteria { SiteId = list.ParentWeb.Site.ID, WebId = list.ParentWeb.ID, WebPartId = reportWebPartGuid, UserId = list.ParentWeb.CurrentUser.ID.ToString() }; var userSettingsRepo = new ReportFilterUserSettingsRepository(list.ParentWeb); var userSettings = userSettingsRepo.GetUserSettings(searchCriteria); if (userSettings.IsValid) { var filterValues = new StringBuilder(); foreach (var title in userSettings.TitleSelections) { filterValues.AppendFormat("<Value Type='text'>{0}</Value>", HttpUtility.HtmlEncode(title)); } if (userSettings.ListId == list.ID) { if (userSettings.TitleSelections.Count < MaxLookupfilter) { titleFilterQuery = string.Format("<In><FieldRef Name=\"Title\"/><Values>{0}</Values></In>", filterValues.ToString()); } } else if (userSettings.ListId != Guid.Empty) { titleFilterQuery = GetTitleFilterQueryForLookup(list, userSettings, filterValues); } } return(titleFilterQuery); }
private void PersistUserSettings(ReportFilterUserSettings userSettings, SPWeb web) { var repo = new ReportFilterUserSettingsRepository(web); SPSecurity.RunWithElevatedPrivileges(() => repo.PersistUserSettings(userSettings)); }