Example #1
0
        /// <summary>
        /// Syncs 2 post, raising property change event if necessary
        /// </summary>
        /// <param name="newPost"></param>
        public void SyncWithPost(ActivityPost newPost)
        {
            if (UpdatedTime != newPost.UpdatedTime)
            {
                UpdatedTime = newPost.UpdatedTime;
                this.NotifyPropertyChanged(PropertyChanged, o => o.UpdatedTime);
            }

            if (string.Compare(Message, newPost.Message, StringComparison.OrdinalIgnoreCase) != 0)
            {
                Message = newPost.Message;
                this.NotifyPropertyChanged(PropertyChanged, o => o.Message);
            }

            if (CanLike != newPost.CanLike)
            {
                CanLike = newPost.CanLike;
                this.NotifyPropertyChanged(PropertyChanged, o => o.CanLike);
            }

            if (HasLiked != newPost.HasLiked)
            {
                HasLiked = newPost.HasLiked;
                this.NotifyPropertyChanged(PropertyChanged, o => o.HasLiked);
            }

            if (!Likes.Equals(newPost.Likes))
            {
                Likes = newPost.Likes;
                this.NotifyPropertyChanged(PropertyChanged, o => o.Likes);
            }

            if (CanComment != newPost.CanComment)
            {
                CanComment = newPost.CanComment;
                this.NotifyPropertyChanged(PropertyChanged, o => o.CanComment);
            }

            if (CanRemoveComments != newPost.CanRemoveComments)
            {
                CanRemoveComments = newPost.CanRemoveComments;
                this.NotifyPropertyChanged(PropertyChanged, o => o.CanRemoveComments);
            }

            if (CommentCount != newPost.CommentCount)
            {
                CommentCount = newPost.CommentCount;
                Comments     = newPost.Comments;
                this.NotifyPropertyChanged(PropertyChanged, o => o.CommentCount);
            }
            else
            {
                if (Comments.Count > 0 && (newPost.Comments.Count != Comments.Count ||
                                           (Comments[0].Time != newPost.Comments[0].Time ||
                                            Comments[Comments.Count - 1].Time != newPost.Comments[Comments.Count - 1].Time)))
                {
                    Comments = newPost.Comments;
                }
            }
        }