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);
        }
示例#4
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 bool UserHasPersistedSettings(ReportFilterSearchCriteria userSettings)
        {
            var searchResults = GetUserSettings(userSettings);

            return(searchResults.IsValid);
        }