private void MergeCollections(Listing<Post> input)
{
// Step one.... remove any deleted items.
List<PostViewModel> toRemove = new List<PostViewModel>();
foreach (var postvm in _posts)
{
bool doesExist = (from post in input where post.Name == postvm.Name select post).Count() > 0;
if (!doesExist)
{
toRemove.Add(postvm);
}
}
foreach (var postvm in toRemove)
{
_posts.Remove(postvm);
}
// Step two.... add any new items.
foreach (var post in input)
{
bool doesExist = (from postvm in _posts where postvm.Name == post.Name select postvm).Count() > 0;
if (!doesExist)
{
_posts.Add(new PostViewModel(post));
}
}
}
}