public ReportFilterUserSettings GetUserSettings(ReportFilterSearchCriteria searchCriteria) { var userSettingsToReturn = new ReportFilterUserSettings(); SqlConnection cn; SPSecurity.RunWithElevatedPrivileges(delegate { using (cn = new SqlConnection(EPMLiveCore.CoreFunctions.getConnectionString(_web.Site.WebApplication.Id))) { cn.Open(); var cmd = new SqlCommand("SELECT * FROM PERSONALIZATIONS WHERE FK=@FK and UserId=@userid and [Key]=@key and SiteId=@siteid and WebId=@webid", cn); cmd.Parameters.AddWithValue("@FK", searchCriteria.WebPartId.ToString()); cmd.Parameters.AddWithValue("@siteid", searchCriteria.SiteId.ToString()); cmd.Parameters.AddWithValue("@webid", searchCriteria.WebId.ToString()); cmd.Parameters.AddWithValue("@userid", searchCriteria.UserId); cmd.Parameters.AddWithValue("@key", Key); var reader = cmd.ExecuteReader(); userSettingsToReturn.Hydrate(reader); cn.Close(); } }); return(userSettingsToReturn); }
public void PersistUserSettings(ReportFilterUserSettings userSettings) { var searchCriteria = new ReportFilterSearchCriteria { WebPartId = userSettings.WebPartId, SiteId = userSettings.SiteId, WebId = userSettings.WebId, UserId = userSettings.UserId }; if (UserHasPersistedSettings(searchCriteria)) { UpdateUserSettings(userSettings); } else { InsertUserSettings(userSettings); } }
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 bool UserHasPersistedSettings(ReportFilterSearchCriteria userSettings) { var searchResults = GetUserSettings(userSettings); return(searchResults.IsValid); }