|
|
- using CookComputing.XmlRpc;
- using System;
- using System.Linq;
- using System.Collections.Generic;
- using System.Web;
-
- [XmlRpcMissingMapping(MappingAction.Ignore)]
- public class Post
- {
- public Post()
- {
- ID = Guid.NewGuid().ToString();
- Title = "My new post";
- Author = HttpContext.Current.User.Identity.Name;
- Content = "the content";
- PubDate = DateTime.UtcNow;
- LastModified = DateTime.UtcNow;
- Categories = new string[0];
- Comments = new List<Comment>();
- IsPublished = true;
- }
-
- [XmlRpcMember("postid")]
- public string ID { get; set; }
-
- [XmlRpcMember("title")]
- public string Title { get; set; }
-
- [XmlRpcMember("author")]
- public string Author { get; set; }
-
- [XmlRpcMember("wp_slug")]
- public string Slug { get; set; }
-
- [XmlRpcMember("description")]
- public string Content { get; set; }
-
- [XmlRpcMember("dateCreated")]
- public DateTime PubDate { get; set; }
-
- [XmlRpcMember("dateModified")]
- public DateTime LastModified { get; set; }
-
- public bool IsPublished { get; set; }
-
- [XmlRpcMember("categories")]
- public string[] Categories { get; set; }
- public List<Comment> Comments { get; private set; }
-
- public Uri AbsoluteUrl
- {
- get
- {
- Uri requestUrl = HttpContext.Current.Request.Url;
- return new Uri(requestUrl.Scheme + "://" + requestUrl.Authority + Url, UriKind.Absolute);
- }
- }
-
- public Uri Url
- {
- get
- {
- return new Uri(VirtualPathUtility.ToAbsolute("~/post/" + Slug), UriKind.Relative);
- }
- }
-
- public bool AreCommentsOpen(HttpContextBase context)
- {
- return PubDate > DateTime.UtcNow.AddDays(-Blog.DaysToComment) || context.User.Identity.IsAuthenticated;
- }
-
- public int CountApprovedComments(HttpContextBase context)
- {
- return (Blog.ModerateComments && !context.User.Identity.IsAuthenticated) ? this.Comments.Count(c => c.IsApproved) : this.Comments.Count;
- }
- }
|