protected void feedFilters_SelectedIndexChanged(object sender, EventArgs e) { if (Page.IsPostBack) { try { messages.Text = string.Empty; SocialUserFilter filter = SocialUserFilter.All; if (feedFilters.SelectedValue == "1") { filter = SocialUserFilter.Week; } if (feedFilters.SelectedValue == "2") { filter = SocialUserFilter.Liked; } //Apply the selected filter followersImages.DataSource = LoadSocialUsers(SocialUserType.Follower, filter); followersImages.DataBind(); followedImages.DataSource = LoadSocialUsers(SocialUserType.Followed, filter); followedImages.DataBind(); } catch (Exception x) { messages.Text = "Exception in feedFilters_SelectedIndexChanged: " + x.Message; } } }
private List <SocialUser> FilterFollowed(List <SocialUser> users, SocialUserFilter filter) { List <SocialUser> includedUsers = new List <SocialUser>(); foreach (SocialUser user in users) { bool include = false; List <SocialPost> posts = GetPosts(user.AccountName); switch (filter) { case SocialUserFilter.All: include = true; break; case SocialUserFilter.Week: foreach (SocialPost post in posts) { if (post.CreatedDate.AddDays(7) >= DateTime.Today) { include = true; break; } } break; case SocialUserFilter.Liked: foreach (SocialPost post in posts) { if (post.LikedByMe) { include = true; break; } } break; } if (include) { SocialUser includedUser = new SocialUser(); includedUser.AccountName = user.AccountName; includedUser.ImageUrl = user.ImageUrl; includedUser.Name = user.Name; includedUsers.Add(user); } } return(includedUsers); }
private List <SocialUser> LoadSocialUsers(SocialUserType type, SocialUserFilter filter) { List <SocialUser> users = new List <SocialUser>(); //Create the endpoint for the REST call string endpoint; if (type == SocialUserType.Followed) { endpoint = hdnHostWeb.Value + "/_api/social.following/my/Followed(types=1)"; } else { endpoint = hdnHostWeb.Value + "/_api/social.following/my/Followers"; } //Make the request XDocument responseDoc = GetDataREST(endpoint); //Parse the response XNamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices"; XNamespace m = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"; XNamespace georss = "http://www.georss.org/georss"; XNamespace gml = "http://www.opengis.net/gml"; var followedUsers = from e in responseDoc.Root.Descendants(d + "element") select new { AccountName = e.Element(d + "AccountName").Value.Split('|')[2], Name = e.Element(d + "Name").Value, ImageUrl = e.Element(d + "ImageUri").Value }; //Build a collection of users foreach (var followedUser in followedUsers) { SocialUser user = new SocialUser(); user.AccountName = followedUser.AccountName; user.Name = followedUser.Name; user.ImageUrl = followedUser.ImageUrl; users.Add(user); } //Filter the users return(FilterFollowed(users, filter)); }
private List <SocialUser> LoadSocialUsers(SocialUserType type, SocialUserFilter filter) { List <SocialUser> users = new List <SocialUser>(); using (ClientContext ctx = TokenHelper.GetClientContextWithContextToken(hdnHostWeb.Value, hdnContextToken.Value, Request.Url.Authority)) { //Get social users ClientResult <SocialActor[]> socialActors = null; SocialFollowingManager followingManager = new SocialFollowingManager(ctx); ctx.Load(followingManager); if (type == SocialUserType.Follower) { socialActors = followingManager.GetFollowers(); } if (type == SocialUserType.Followed) { socialActors = followingManager.GetFollowed(SocialActorTypes.Users); } ctx.ExecuteQuery(); //Build a collection of users foreach (var socialActor in socialActors.Value) { SocialUser user = new SocialUser(); user.AccountName = socialActor.AccountName; user.Name = socialActor.Name; user.ImageUrl = socialActor.ImageUri; users.Add(user); } } //Filter the users return(FilterFollowed(users, filter)); }
private List<SocialUser> LoadSocialUsers(SocialUserType type, SocialUserFilter filter) { List<SocialUser> users = new List<SocialUser>(); //Create the endpoint for the REST call string endpoint; if (type == SocialUserType.Followed) endpoint = hdnHostWeb.Value + "/_api/social.following/my/Followed(types=1)"; else endpoint = hdnHostWeb.Value + "/_api/social.following/my/Followers"; //Make the request XDocument responseDoc = GetDataREST(endpoint); //Parse the response XNamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices"; XNamespace m = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"; XNamespace georss = "http://www.georss.org/georss"; XNamespace gml = "http://www.opengis.net/gml"; var followedUsers = from e in responseDoc.Root.Descendants(d + "element") select new { AccountName = e.Element(d + "AccountName").Value.Split('|')[2], Name = e.Element(d + "Name").Value, ImageUrl = e.Element(d + "ImageUri").Value }; //Build a collection of users foreach (var followedUser in followedUsers) { SocialUser user = new SocialUser(); user.AccountName = followedUser.AccountName; user.Name = followedUser.Name; user.ImageUrl = followedUser.ImageUrl; users.Add(user); } //Filter the users return FilterFollowed(users, filter); }
private List<SocialUser> FilterFollowed(List<SocialUser> users, SocialUserFilter filter) { List<SocialUser> includedUsers = new List<SocialUser>(); foreach (SocialUser user in users) { bool include = false; List<SocialPost> posts = GetPosts(user.AccountName); switch (filter) { case SocialUserFilter.All: include = true; break; case SocialUserFilter.Week: foreach (SocialPost post in posts) { if (post.CreatedDate.AddDays(7) >= DateTime.Today) { include = true; break; } } break; case SocialUserFilter.Liked: foreach (SocialPost post in posts) { if (post.LikedByMe) { include = true; break; } } break; } if (include) { SocialUser includedUser = new SocialUser(); includedUser.AccountName = user.AccountName; includedUser.ImageUrl = user.ImageUrl; includedUser.Name = user.Name; includedUsers.Add(user); } } return includedUsers; }
private List<SocialUser> LoadSocialUsers(SocialUserType type, SocialUserFilter filter) { List<SocialUser> users = new List<SocialUser>(); using (ClientContext ctx = TokenHelper.GetClientContextWithContextToken(hdnHostWeb.Value, hdnContextToken.Value, Request.Url.Authority)) { //Get social users ClientResult<SocialActor[]> socialActors = null; SocialFollowingManager followingManager = new SocialFollowingManager(ctx); ctx.Load(followingManager); if (type == SocialUserType.Follower) socialActors = followingManager.GetFollowers(); if (type == SocialUserType.Followed) socialActors = followingManager.GetFollowed(SocialActorTypes.Users); ctx.ExecuteQuery(); //Build a collection of users foreach (var socialActor in socialActors.Value) { SocialUser user = new SocialUser(); user.AccountName = socialActor.AccountName; user.Name = socialActor.Name; user.ImageUrl = socialActor.ImageUri; users.Add(user); } } //Filter the users return FilterFollowed(users, filter); }