Ejemplo n.º 1
0
        //public static List<MemberCardModel> GetModerators()
        //{
        //    using (var webClient = new WebClient())
        //    {
        //        string adminKeyBase64 = CommunityHelper.TelligentAuth();

        //        webClient.Headers.Add("Rest-User-Token", adminKeyBase64);

        //        var roleid = Sitecore.Configuration.Settings.GetSetting("TelligentModeratorRoleID") ?? "3";
        //        var serverHost = Sitecore.Configuration.Settings.GetSetting("TelligentConfig") ?? "localhost/telligent.com";
        //        var requestUrl = serverHost + "/api.ashx/v2/roles/" + roleid + "/users.xml";

        //        var xml = webClient.DownloadString(requestUrl);
        //        var xmlDoc = new XmlDocument();
        //        xmlDoc.LoadXml(xml);
        //        var nodes = xmlDoc.SelectNodes("/Response/Users/User");
        //        //// PagedList<Comment> commentList = PublicApi.Comments.Get(new CommentGetOptions() { UserId = 2100 });
        //        //// lblCount.Text = nodes.Count.ToString();
        //        List<MemberCardModel> memberCardSrc = new List<MemberCardModel>();
        //        foreach (XmlNode item in nodes)
        //        {
        //            MemberCardModel cm = new MemberCardModel();
        //            cm.AvatarUrl = item.SelectSingleNode("AvatarUrl").InnerText;

        //            // TODO: This is to change once we figure out retrieving users by roleid
        //            cm.UserLabel = "Moderator";

        //            cm.UserLocation = item.SelectSingleNode("Location").InnerText;
        //            cm.UserName = item.SelectSingleNode("Username").InnerText;

        //            memberCardSrc.Add(cm);
        //            cm = null;
        //        }
        //        return memberCardSrc;
        //    }
        //}

        /// <summary>
        /// Gets a list of blog posts that a specified blog contains.
        /// </summary>
        /// <param name="blogId">As string, if multiple, separate with a comma. Ex:("1,2,4")</param>
        /// <param name="count">As string, this is the number of records to be returned.</param>
        /// <returns></returns>
        public static List<BlogPost> ListBlogPosts(string blogId, string count)
        {
            using (var webClient = new WebClient())
            {

                webClient.Headers.Add("Rest-User-Token", TelligentAuth());

                var requestUrl = GetApiEndPoint(string.Format("blogs/posts.xml?BlogIds={0}&PageSize={1}", blogId, count));

                var xml = webClient.DownloadString(requestUrl);

                List<BlogPost> blogPosts = new List<BlogPost>();

                var xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(xml);
                XmlNodeList nodes = xmlDoc.SelectNodes("Response/BlogPosts/BlogPost");
                foreach (XmlNode node in nodes)
                {
                    XmlNode author = node.SelectSingleNode("Author");
                    var blogName = CommunityHelper.BlogNameById(node["BlogId"].InnerText);
                    string title = string.Empty;
                    string sitecoreId = string.Empty;
                    string url = string.Empty;
                    if (node["Title"].InnerText.Contains("{"))
                    {
                        string[] s = node["Title"].InnerText.Split('{');
                        title = s[0];
                        url = LinkManager.GetItemUrl(Sitecore.Context.Database.GetItem("{" + s[1]));
                    }
                    else
                    {
                        url = Regex.Replace(LinkManager.GetItemUrl(Sitecore.Context.Database.GetItem("{37FB73FC-F1B3-4C04-B15D-CAFAA7B7C87F}")) +
                        "/" + blogName + "/" + node["Title"].InnerText, ".aspx", "");
                    }
                    BlogPost blogPost = new BlogPost()
                    {
                        Title = node["Title"].InnerText,
                        ContentId = node["ContentId"].InnerText,
                        Body = FormatString100(node["Body"].InnerText),
                        PublishedDate = UnderstoodDotOrg.Common.Helpers.DataFormatHelper.FormatDate(node["PublishedDate"].InnerText),
                        BlogName = blogName,
                        Author = author["DisplayName"].InnerText,
                        // TODO: Fix this logic a lot
                        Url = url,
                        ParentUrl = Regex.Replace(LinkManager.GetItemUrl(Sitecore.Context.Database.GetItem("{37FB73FC-F1B3-4C04-B15D-CAFAA7B7C87F}")) +
                        "/blogposts?BlogId=" + node["BlogId"].InnerText, ".aspx", ""),
                        CommentCount = node["CommentCount"].InnerText,
                    };
                    blogPosts.Add(blogPost);
                }
                return blogPosts;
            }
        }
Ejemplo n.º 2
0
        public static BlogPost ReadBlogBody(int blogId, int blogPostId)
        {
            int id = 0;
            int postId = 0;
            BlogPost blogPost = new BlogPost();

            if (String.IsNullOrEmpty(blogId.ToString()) || String.IsNullOrEmpty(blogPostId.ToString())
                || !Int32.TryParse(blogId.ToString(), out id) || !Int32.TryParse(blogPostId.ToString(), out postId))
            {
                return blogPost;
            }

            using (var webClient = new WebClient())
            {
                try
                {
                    webClient.Headers.Add("Rest-User-Token", TelligentAuth());
                    var requestUrl = GetApiEndPoint(String.Format("blogs/{0}/posts/{1}.xml", blogId, blogPostId));

                    var xml = webClient.DownloadString(requestUrl);

                    var xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(xml);

                    XmlNode node = xmlDoc.SelectSingleNode("Response/BlogPost");

                    XmlNode auth = xmlDoc.SelectSingleNode("Response/BlogPost/Author");


                    blogPost = new BlogPost
                    {
                        Body = node["Body"].InnerText,
                        Title = node["Title"].InnerText,
                        ContentId = node["ContentId"].InnerText,
                        ContentTypeId = node["ContentTypeId"].InnerText,
                        ContentUrl = node["Url"].InnerText,
                        BlogName = CommunityHelper.BlogNameById(node["BlogId"].InnerText),
                        PublishedDate = UnderstoodDotOrg.Common.Helpers.DataFormatHelper.FormatDate(node["PublishedDate"].InnerText),
                        Author = auth["DisplayName"].InnerText
                    };

                }
                catch { } // TODO: Add logging
            }
            return blogPost;
        }