/// <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; } } }