private void EnhanceQuery(object sender, BeforeSerializeToClientEventArgs e)
        {
            DataProviderScriptWebPart dataProvider = sender as DataProviderScriptWebPart;

            dataProvider.Properties.Add("Demo_SeeMoreText", this.SeeMoreText);
            dataProvider.Properties.Add("Demo_SeeMoreUrl", this.SeeMoreUrl);
            dataProvider.Properties.Add("Demo_ReadMoreText", this.ReadMoreText);
            dataProvider.Properties.Add("Demo_ReadMoreUrl", this.ReadMoreUrl);
        }
Esempio n. 2
0
        protected override void CreateChildControls()
        {
            DataProviderScriptWebPart dp = this.GetPrivatePropertyValue <DataProviderScriptWebPart>("DataProvider");

            if (dp != null)
            {
                this.Controls.Add(dp);
            }
            if (this.GetPrivateFieldValue <bool>("RenderOnServer") && !base.IsSharePointCrawler())
            {
                this.Controls.Add(this.GetPrivatePropertyValue <SearchServerRenderer>("ServerRenderer"));
            }

            typeof(DisplayScriptWebPart).GetMethod("CreateChildControls", BindingFlags.NonPublic | BindingFlags.Instance).InvokeNotOverride(this, null);
        }
        private void UpdateQueryText(object sender, BeforeSerializeToClientEventArgs e)
        {
            try
            {
                DataProviderScriptWebPart dataProvider = sender as DataProviderScriptWebPart;

                string currentQueryText = dataProvider.QueryTemplate;
                string token            = "TargetAudienceQuery";
                if (currentQueryText.Contains(token))
                {
                    dataProvider.QueryTemplate = currentQueryText.Replace(token, BuildTAQuery());
                }
            }
            catch (Exception ex)
            {
                SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("Content Search Ext Web Part", TraceSeverity.Medium, EventSeverity.Error),
                                                      TraceSeverity.Medium, "UpdateQueryText Failed: " + ex.Message, null);
            }
        }
        void DataProvider_BeforeSerializeToClient(object sender, ScriptWebPart.BeforeSerializeToClientEventArgs e)
        {
            DataProviderScriptWebPart dp = sender as DataProviderScriptWebPart;

            if (dp == null)
            {
                return;
            }

            List <string> authorsIFollow = new List <string>();
            List <string> sitesIFollow   = new List <string>();
            SPUser        targetUser     = SPContext.Current.Web.CurrentUser;

            try
            {
                SPServiceContext   serverContext  = SPServiceContext.GetContext(SPContext.Current.Site);
                UserProfileManager profileManager = new UserProfileManager(serverContext);
                if (profileManager.UserExists(targetUser.LoginName))
                {
                    UserProfile profile = profileManager.GetUserProfile(targetUser.LoginName);
                    SPSocialFollowingManager manager       = new SPSocialFollowingManager(profile);
                    SPSocialActor[]          followedUsers = manager.GetFollowed(SPSocialActorTypes.Users);
                    authorsIFollow.AddRange(followedUsers.Select(f => f.Name));

                    SPSocialActor[] followedSites = manager.GetFollowed(SPSocialActorTypes.Sites);
                    sitesIFollow.AddRange(followedSites.Select(f => f.Uri.AbsoluteUri));
                }
            }
            catch (SPSocialException)
            {
                //Silence error if the user don't have a personal site
            }

            if (authorsIFollow.Count > 0)
            {
                dp.Properties["FollowedUsers"] = authorsIFollow;
            }

            if (sitesIFollow.Count > 0)
            {
                dp.Properties["FollowedSites"] = sitesIFollow;
            }
        }
Esempio n. 5
0
        public static void AddWebPartsAndConfig(string nameAndPathWelcomePage, List<WebPartDriskolls> webPerts, SPWeb spWeb, string sourceId, string contentSearchPath)
        {
            try
            {
                using (SPLimitedWebPartManager manager = spWeb.GetLimitedWebPartManager(spWeb.Url + "/" + nameAndPathWelcomePage, PersonalizationScope.Shared))
                {
                    foreach (WebPartDriskolls wpDriskolls in webPerts)
                    {
                        ContentBySearchWebPart contSearchWebPart = new ContentBySearchWebPart();
                        contSearchWebPart.Title = wpDriskolls.Name;
                        switch (wpDriskolls.Params["ChromeType"])
                        {
                            case "None":
                                contSearchWebPart.ChromeType = PartChromeType.None;
                                break;
                            case "Title":
                                contSearchWebPart.ChromeType = PartChromeType.TitleOnly;
                                break;
                            default:
                                contSearchWebPart.ChromeType = PartChromeType.None;
                                break;
                        }

                        contSearchWebPart.NumberOfItems = int.Parse(wpDriskolls.Params["NumberOfItems"]);
                        contSearchWebPart.RenderTemplateId = contentSearchPath + wpDriskolls.Params["TemplateControl"] + ".js";
                        contSearchWebPart.ItemTemplateId = contentSearchPath + wpDriskolls.Params["ItemTemplateId"] + ".js";
                        var querySettings = new DataProviderScriptWebPart
                        {
                            PropertiesJson = contSearchWebPart.DataProviderJSON
                        };
                        //setting the search query text
                        querySettings.Properties["QueryTemplate"] = wpDriskolls.Params["Custom Query"];
                        querySettings.Properties["FallbackSortJson"] = wpDriskolls.Params["FallbackSortJson"];
                        querySettings.Properties["SourceID"] = sourceId;
                        contSearchWebPart.DataProviderJSON = querySettings.PropertiesJson;
                        manager.AddWebPart(contSearchWebPart, wpDriskolls.Params["wpZone"], 1);
                    }
                }
            }
            catch (Exception ee)
            {
                EssnLog.logInfo("Error on AddWebPartsAndConfig in FeatureActivated.");
                EssnLog.logExc(ee);
            }
        }