Example #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="NewsPostDto"/> class.
 /// </summary>
 /// <param name="postAdapter">The post adapter.</param>
 public NewsPostDto(IPostAdapter postAdapter)
 {
     PostId    = postAdapter.Id;
     PostDate  = postAdapter.Timestamp.ToUniversalTime();
     PostTitle = postAdapter.Title;
     PostUrl   = postAdapter.Url;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="ThreadStatusDto"/> class.
        /// </summary>
        /// <param name="post">The post adapter.</param>
        /// <param name="request">The initial request object that triggered the retrieval of thread information.</param>
        public ThreadStatusDto(IPostAdapter post, ThreadStatusRequest request)
        {
            ThreadId = request.ThreadId;
            if (post == null)
            {
                PostId                  = request.PostId;
                LastPostDate            = null;
                LastPosterUrlIdentifier = null;
                LastPostUrl             = null;
                IsCallingCharactersTurn = true;
                IsQueued                = false;
                return;
            }
            var note             = post.GetMostRecentRelevantNote(request.CharacterUrlIdentifier, request.PartnerUrlIdentifier);
            var dateMarkedQueued = request.DateMarkedQueued?.ToUniversalTime();
            var lastPostDate     = note?.Timestamp.ToUniversalTime() ?? post.Timestamp.ToUniversalTime();

            PostId                  = post.Id;
            LastPostDate            = lastPostDate;
            LastPosterUrlIdentifier = note?.BlogName ?? post.BlogName;
            LastPostUrl             = note != null ? note.BlogUrl + "post/" + note.PostId : post.Url;
            IsCallingCharactersTurn = !string.Equals(LastPosterUrlIdentifier, request.CharacterUrlIdentifier, StringComparison.CurrentCultureIgnoreCase);
            IsQueued                = dateMarkedQueued != null && dateMarkedQueued.Value > lastPostDate;
        }
 public HomeController()
 {
     _postAdapter = new PostAdapter();
 }