示例#1
0
 /// <summary>
 /// Loads group's posts
 /// </summary>
 /// <param name="options"><see cref="LinkedInGetGroupPostsOptions"/> object representing posts retrieval options</param>
 /// <returns>Request result</returns>
 /// <remarks>This is synchronous operation, i.e. the current thread will be suspended until it finishes to load all posts. If you want to load group's posts asynchronously, consider to use <see cref="LinkedInClient.GetGroupPosts"/> function instead</remarks>
 public LinkedInResponse <bool> LoadPosts(LinkedInGetGroupPostsOptions options)
 {
     try
     {
         if (_Posts == null)
         {
             _Posts = new List <LinkedInGroupPost>();
         }
         else
         {
             _Posts.Clear();
         }
         options.GroupId = Id;
         _Posts.AddRange(RequestRunner.GetGroupPosts(options));
         return(new LinkedInResponse <bool>(true, LinkedInResponseStatus.OK, null));
     }
     catch (WebException wex)
     {
         return(Utils.GetResponse(false, wex, null));
     }
     catch (Exception ex)
     {
         return(new LinkedInResponse <bool>(false, LinkedInResponseStatus.OtherException, null, ex));
     }
 }
示例#2
0
        protected async void GetPosts(string groupId)
        {
            LinkedInGroup group = groups[groupId];
            LinkedInGetGroupPostsOptions postOptions = new LinkedInGetGroupPostsOptions();

            postOptions.PostOptions.SelectAll();
            postOptions.GroupId = group.Id;
            await Task.Run(() => group.LoadPosts(postOptions));

            foreach (LinkedInGroupPost post in group.Posts)
            {
                if (!posts.ContainsKey(post.Id))
                {
                    posts[post.Id]     = post;
                    postGroup[post.Id] = group;
                }

                CreateCarrier("LinkedInPost", signal =>
                {
                    signal.LinkedInGroup.Name.Text.Value = group.Name;
                    signal.LinkedInGroup.Id = group.Id;
                    signal.Id                 = post.Id;
                    signal.CreationTime       = post.CreationTime;
                    signal.Summary.Text.Value = post.Summary;
                    signal.Title.Text.Value   = post.Title;
                    signal.LinkedInPostCreator.PersonName.Name.Text.Value = post.Creator.FirstName + " " + post.Creator.LastName;
                });
            }
        }
示例#3
0
        internal static string PrepareGroupPostFields(LinkedInGetGroupPostsOptions options)
        {
            var sb = new StringBuilder();
            var gp = options.PostOptions;

            if (!gp.HasValues)
            {
                return(sb.ToString());
            }
            sb.Append(":(");
            if (gp[LinkedInGroupPostFields.Id])
            {
                sb.Append("id,");
            }
            if (gp[LinkedInGroupPostFields.PostType])
            {
                sb.Append("type,");
            }
            if (gp[LinkedInGroupPostFields.Category])
            {
                sb.Append("category,");
            }
            if (gp[LinkedInGroupPostFields.Creator])
            {
                sb.Append("creator,");
            }
            if (gp[LinkedInGroupPostFields.Title])
            {
                sb.Append("title,");
            }
            if (gp[LinkedInGroupPostFields.Summary])
            {
                sb.Append("summary,");
            }
            if (gp[LinkedInGroupPostFields.CreationTime])
            {
                sb.Append("creation-timestamp,");
            }
            if (gp[LinkedInGroupPostFields.RelationToViewer])
            {
                sb.Append("relation-to-viewer,");
            }
            if (gp[LinkedInGroupPostFields.Likes])
            {
                sb.Append("likes,");
            }
            if (gp[LinkedInGroupPostFields.Attachment])
            {
                sb.Append("attachment,");
            }
            if (gp[LinkedInGroupPostFields.SiteGroupPostUrl])
            {
                sb.Append("site-group-post-url,");
            }
            sb.Length -= 1;
            sb.Append(")");
            return(sb.ToString());
        }
        protected async void LoadPostsForGroup(TreeNode node, LinkedInGroup group)
        {
            LinkedInGetGroupPostsOptions options = new LinkedInGetGroupPostsOptions();

            options.PostOptions.SelectAll();
            options.GroupId = group.Id;
            ShowLoading(node);

            await Task.Run(() => group.LoadPosts(options));

            ShowGroupPosts(node, group);
            node.ExpandAll();
        }