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);
        }
Exemple #2
0
        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));
        }