public IEnumerable <SocialComment> Comments(ListItem item)
        {
            SocialFeedManager         feedManager = new SocialFeedManager(_context);
            SocialFeedOptions         feedOptions = new SocialFeedOptions();
            ClientResult <SocialFeed> feed        = feedManager.GetFeedFor(_context.Web.CurrentUser.LoginName, feedOptions);

            _context.ExecuteQuery();

            foreach (SocialThread thread in feed.Value.Threads)
            {
                yield return(new SocialComment
                {
                    Id = thread.Id,
                    Text = thread.RootPost.Text
                });

                foreach (SocialPost post in thread.Replies)
                {
                    yield return(new SocialComment
                    {
                        Id = post.Id,
                        Text = post.Text
                    });
                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                /* Save the Context Token and Host Web URL in hidden fields
                 * These will be needed to create client contexts in subsequent calls */
                hdnContextToken.Value = TokenHelper.GetContextTokenFromRequest(Page.Request);
                hdnHostWeb.Value = Page.Request["SPHostUrl"];

                List<AssignmentPost> posts = new List<AssignmentPost>();

                /* Create a collection of posts that mention the current user
                 * and are tagged with #Assignment. These posts are candidates
                 * to be turned into tasks for the current user */

                using (ClientContext ctx = TokenHelper.GetClientContextWithContextToken(hdnHostWeb.Value, hdnContextToken.Value, Request.Url.Authority))
                {
                    try
                    {
                        //Get current user
                        ctx.Load(ctx.Web, w => w.CurrentUser);
                        ctx.ExecuteQuery();

                        //Get posts that mention the current user
                        SocialFeedManager feedManager = new SocialFeedManager(ctx);
                        ctx.Load(feedManager);

                        SocialFeedOptions feedOptions = new SocialFeedOptions();
                        feedOptions.MaxThreadCount = 50;
                        feedOptions.SortOrder = SocialFeedSortOrder.ByCreatedTime;
                        ClientResult<SocialFeed> feedData = feedManager.GetMentions(false, feedOptions);
                        ctx.ExecuteQuery();

                        //Build a collection of posts tagged with #Assignment
                        foreach (SocialThread thread in feedData.Value.Threads)
                        {
                            if (thread.PostReference.Post.Text.Contains("#Assignment"))
                            {
                                AssignmentPost post = new AssignmentPost();
                                post.CreatedDate = thread.RootPost.CreatedTime;
                                post.Body = thread.PostReference.Post.Text
                                    .Replace("#Assignment", string.Empty)
                                    .Replace("@" + ctx.Web.CurrentUser.Title, string.Empty);
                                post.Requester = thread.Actors[thread.PostReference.Post.AuthorIndex].Name;
                                posts.Add(post);
                            }
                        }

                        //Bind these posts for display
                        assignmentPosts.DataSource = posts;
                        assignmentPosts.DataBind();
                    }
                    catch (Exception x)
                    {
                        messages.Text = x.Message;
                    }
                }
            }
        }
Exemple #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                /* Save the Context Token and Host Web URL in hidden fields
                 * These will be needed to create client contexts in subsequent calls */
                hdnContextToken.Value = TokenHelper.GetContextTokenFromRequest(Page.Request);
                hdnHostWeb.Value      = Page.Request["SPHostUrl"];

                List <AssignmentPost> posts = new List <AssignmentPost>();

                /* Create a collection of posts that mention the current user
                 * and are tagged with #Assignment. These posts are candidates
                 * to be turned into tasks for the current user */

                using (ClientContext ctx = TokenHelper.GetClientContextWithContextToken(hdnHostWeb.Value, hdnContextToken.Value, Request.Url.Authority))
                {
                    try
                    {
                        //Get current user
                        ctx.Load(ctx.Web, w => w.CurrentUser);
                        ctx.ExecuteQuery();

                        //Get posts that mention the current user
                        SocialFeedManager feedManager = new SocialFeedManager(ctx);
                        ctx.Load(feedManager);

                        SocialFeedOptions feedOptions = new SocialFeedOptions();
                        feedOptions.MaxThreadCount = 50;
                        feedOptions.SortOrder      = SocialFeedSortOrder.ByCreatedTime;
                        ClientResult <SocialFeed> feedData = feedManager.GetMentions(false, feedOptions);
                        ctx.ExecuteQuery();

                        //Build a collection of posts tagged with #Assignment
                        foreach (SocialThread thread in feedData.Value.Threads)
                        {
                            if (thread.PostReference.Post.Text.Contains("#Assignment"))
                            {
                                AssignmentPost post = new AssignmentPost();
                                post.CreatedDate = thread.RootPost.CreatedTime;
                                post.Body        = thread.PostReference.Post.Text
                                                   .Replace("#Assignment", string.Empty)
                                                   .Replace("@" + ctx.Web.CurrentUser.Title, string.Empty);
                                post.Requester = thread.Actors[thread.PostReference.Post.AuthorIndex].Name;
                                posts.Add(post);
                            }
                        }

                        //Bind these posts for display
                        assignmentPosts.DataSource = posts;
                        assignmentPosts.DataBind();
                    }
                    catch (Exception x)
                    {
                        messages.Text = x.Message;
                    }
                }
            }
        }
Exemple #4
0
        protected void btnCreateSite_Click(object sender, EventArgs e)
        {
            string docLinkUrl = "http://xqx2012/DocLib1/IMGP2947.JPG";

            ClientContext ctx = new ClientContext(newUrl);

            ctx.Credentials = CredentialCache.DefaultCredentials;
            //ctx.ExecutingWebRequest += new EventHandler<WebRequestEventArgs>(clientContext_ExecutingWebRequest);
            //CredentialCache cc = new CredentialCache();
            //cc.Add(new Uri(newUrl), "NTLM", CredentialCache.DefaultNetworkCredentials);
            NetworkCredential cc = new NetworkCredential("userb", "123123", "ccc");

            //ctx.Credentials = cc;
            //ctx.AuthenticationMode = ClientAuthenticationMode.Default;

            //ctx.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
            //using (var ctx = TokenHelper.GetClientContextWithAccessToken(HostWeb, AccessToken))
            //{
            try
            {
                SocialDataItem docLink = new SocialDataItem
                {
                    ItemType = SocialDataItemType.Document,
                    Text     = "link to picture",
                    Uri      = docLinkUrl
                };
                SocialPostCreationData postCreationData = new SocialPostCreationData();
                postCreationData.ContentText  = "{0}";
                postCreationData.ContentItems = new SocialDataItem[1] {
                    docLink
                };
                SocialFeedManager feedManager = new SocialFeedManager(ctx);
                // Publish the post. This is a root post to the user's feed, so specify
                // null for the targetId parameter.
                feedManager.CreatePost(null, postCreationData);

                //clientContext.ExecuteQuery();
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    ctx.ExecuteQuery();
                });
                lbMessage.Text = "success!";
            }
            catch (Exception ex)
            {
                lbMessage.Text = ex.Message;
            }
            //}
        }
Exemple #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var contextToken = TokenHelper.GetContextTokenFromRequest(Page.Request);
            var hostWeb      = Page.Request["SPHostUrl"];

            using (var clientContext = TokenHelper.GetClientContextWithContextToken(hostWeb, contextToken, Request.Url.Authority))
            {
                SocialFeedManager feedManager = new SocialFeedManager(clientContext);
                clientContext.Load(feedManager);

                SocialFeedOptions         feedOptions  = new SocialFeedOptions();
                ClientResult <SocialFeed> personalFeed = feedManager.GetFeed(SocialFeedType.Personal, feedOptions);
                ClientResult <SocialFeed> siteFeed     = feedManager.GetFeedFor("https://swrightjet.sharepoint.com/ex2", feedOptions);
                ClientResult <SocialFeed> userFeed     = feedManager.GetFeedFor("*****@*****.**", feedOptions);
                clientContext.ExecuteQuery();

                DumpFeed("Personal Feed", personalFeed.Value);
                DumpFeed("Site Feed", siteFeed.Value);
                DumpFeed("User Feed", userFeed.Value);
            }
        }
        private List <SocialPost> GetPosts(string accountName)
        {
            List <SocialPost> posts = new List <SocialPost>();

            using (ClientContext ctx = TokenHelper.GetClientContextWithContextToken(hdnHostWeb.Value, hdnContextToken.Value, Request.Url.Authority))
            {
                try
                {
                    //Get posts
                    SocialFeedManager feedManager = new SocialFeedManager(ctx);
                    ctx.Load(feedManager);

                    SocialFeedOptions feedOptions = new SocialFeedOptions();
                    feedOptions.MaxThreadCount = 50;
                    feedOptions.SortOrder      = SocialFeedSortOrder.ByCreatedTime;
                    ClientResult <SocialFeed> feedData = feedManager.GetFeedFor(accountName, feedOptions);
                    ctx.ExecuteQuery();

                    //Build a collection of posts
                    foreach (SocialThread thread in feedData.Value.Threads)
                    {
                        SocialPost post = new SocialPost();
                        post.CreatedDate = thread.RootPost.CreatedTime;
                        post.Body        = thread.RootPost.Text;
                        post.LikedByMe   = thread.RootPost.LikerInfo.IncludesCurrentUser;
                        posts.Add(post);
                    }

                    return(posts);
                }
                catch
                {
                    return(new List <SocialPost>());
                }
            }
        }
        private void btnPostFeed_Click(object sender, RoutedEventArgs e)
        {
            if (!string.IsNullOrEmpty(txtPost.Text))
            {
                try
                {
                    // Create the client context object.
                    context = new ClientContext(Office365.Office365SiteUrl);


                    // Create an instance of Authenticator object.
                    Authenticator at = new Authenticator();
                    at.AuthenticationMode   = ClientAuthenticationMode.MicrosoftOnline;
                    at.CookieCachingEnabled = true;

                    // Assign the instance of Authenticator object to the ClientContext.Credential property.
                    context.Credentials = at;

                    // Create the SocialPostCreationData instance.
                    SocialPostCreationData postCreationData = new SocialPostCreationData();
                    // Add the content for the root post.
                    postCreationData.ContentText = txtPost.Text;

                    // Create an instance of SocialFeedManager.
                    SocialFeedManager feedManager = new SocialFeedManager(context);

                    // Create the root post.
                    feedManager.CreatePost(null, postCreationData);

                    context.ExecuteQueryAsync(
                        (object obj, ClientRequestSucceededEventArgs args) =>
                    {
                        // Success Logic.
                        Deployment.Current.Dispatcher.BeginInvoke(() =>
                        {
                            MessageBox.Show("Post published to Office 365 My Site successfully.");
                        });
                    },

                        (object obj, ClientRequestFailedEventArgs args) =>
                    {
                        // Failure logic.
                        Deployment.Current.Dispatcher.BeginInvoke(() =>
                        {
                            MessageBox.Show(args.Message);
                        });
                    });
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error:   " + ex.Message);
                }
            }
            else
            {
                Deployment.Current.Dispatcher.BeginInvoke(() =>
                {
                    MessageBox.Show("Enter text for the post.");
                });
            }
        }
        private List<SocialPost> GetPosts(string accountName)
        {
            List<SocialPost> posts = new List<SocialPost>();

            using (ClientContext ctx = TokenHelper.GetClientContextWithContextToken(hdnHostWeb.Value, hdnContextToken.Value, Request.Url.Authority))
            {
                try
                {
                    //Get posts
                    SocialFeedManager feedManager = new SocialFeedManager(ctx);
                    ctx.Load(feedManager);

                    SocialFeedOptions feedOptions = new SocialFeedOptions();
                    feedOptions.MaxThreadCount = 50;
                    feedOptions.SortOrder = SocialFeedSortOrder.ByCreatedTime;
                    ClientResult<SocialFeed> feedData = feedManager.GetFeedFor(accountName, feedOptions);
                    ctx.ExecuteQuery();

                    //Build a collection of posts
                    foreach (SocialThread thread in feedData.Value.Threads)
                    {
                        SocialPost post = new SocialPost();
                        post.CreatedDate = thread.RootPost.CreatedTime;
                        post.Body = thread.RootPost.Text;
                        post.LikedByMe = thread.RootPost.LikerInfo.IncludesCurrentUser;
                        posts.Add(post);
                    }

                    return posts;
                }
                catch
                {
                    return new List<SocialPost>();
                }

            }
        }
Exemple #9
0
        private void btnGetFeeds_Click(object sender, RoutedEventArgs e)
        {
            if (!string.IsNullOrEmpty(txtUsername.Text))
            {
                try
                {
                    Deployment.Current.Dispatcher.BeginInvoke(() =>
                    {
                        lstFeeds.Items.Clear();
                    });

                    // Create the client context object.
                    context = new ClientContext(Office365.Office365SiteUrl);

                    // Create an instance of Authenticator object.
                    Authenticator at = new Authenticator();
                    // Set AuthenticationMode for SharePoint Online.
                    at.AuthenticationMode   = ClientAuthenticationMode.MicrosoftOnline;
                    at.CookieCachingEnabled = true;

                    // Assign the instance of Authenticator object to the ClientContext.Credential property.
                    context.Credentials = at;

                    string targetUser = txtUsername.Text;

                    // Create an instance of SocialFeedManager.
                    SocialFeedManager feedManager = new SocialFeedManager(context);
                    context.Load(feedManager, f => f.Owner);
                    SocialFeedOptions feedOptions = new SocialFeedOptions();
                    feedOptions.MaxThreadCount = 10;

                    // Get feeds for the target user.
                    ClientResult <SocialFeed> targetUserFeed = feedManager.GetFeedFor(targetUser, feedOptions);
                    feedOptions.SortOrder = SocialFeedSortOrder.ByCreatedTime;

                    context.ExecuteQueryAsync(
                        (object obj, ClientRequestSucceededEventArgs args) =>
                    {
                        // Success Logic.
                        owner = feedManager.Owner.Name;

                        // Iterate through the feeds of target user.
                        IterateThroughFeed(targetUserFeed.Value, SocialFeedType.Personal);
                    },

                        (object obj, ClientRequestFailedEventArgs args) =>
                    {
                        // Failure Logic.
                        Deployment.Current.Dispatcher.BeginInvoke(() =>
                        {
                            MessageBox.Show("Error:   " + args.Message);
                        });
                    });
                }
                catch (Exception ex)
                {
                    Deployment.Current.Dispatcher.BeginInvoke(() =>
                    {
                        MessageBox.Show("Error:   " + ex.Message);
                    });
                }
            }
            else
            {
                Deployment.Current.Dispatcher.BeginInvoke(() =>
                {
                    MessageBox.Show("Enter the target username whose feeds you want to retrieve");
                });
            }
        }