public RelatedPosts GetRelatedPosts(int postId)
{
try
{
var relatedPosts = new RelatedPosts();
var post = GetPost(postId);
var postByTags = new List<Post>();
if (post.Tags == null || post.Tags.Count == 0)
{
relatedPosts.PostsByTags = new List<Post>();
}
else
{
post.Tags.ForEach(a =>
{
var tPosts = GetPostsByTag(a.TagName);
tPosts.ForEach(b =>
{
var canAdd = postByTags.All(p => p.Id != b.Id);
if (canAdd) postByTags.Add(b);
});
});
relatedPosts.PostsByTags = postByTags.Where(p => p.Id != postId).ToList();
}
var postsByUser = GetPostsByUser(post.User.Id).Where(p => p.Id != postId).ToList();
relatedPosts.PostsByUser = postsByUser;
return relatedPosts;
}
catch (Exception ex)
{
throw new BlogException(ex.Message, ex.InnerException);
}
}