public virtual async Task <IEnumerable <BaseComment <TUserPk> > > GetLastCommentsAsync <TContent>(Site site,
                                                                                                          int count) where TContent : class, IContentItem
        {
            var comments = await GetDbSet().Where(c =>
                                                  c.SiteIds.Contains(site.Id) && c.ContentType == EntityExtensions.GetKey <TContent>())
                           .OrderByDescending(c => c.DateUpdated).Take(count).ToListAsync();

            var authors = await _userDataProvider.GetDataAsync(comments.Select(c => c.AuthorId).ToArray());

            var groups = comments.GroupBy(c => c.ContentType);

            foreach (var group in groups)
            {
                var contentIds   = comments.Select(c => c.ContentId).Distinct().ToList();
                var contentItems = await DbContext.Set <TContent>().Where(c => contentIds.Contains(c.Id)).ToListAsync();

                foreach (var comment in group)
                {
                    comment.Author      = authors.FirstOrDefault(a => a.Id.Equals(comment.AuthorId));
                    comment.ContentItem = contentItems.FirstOrDefault(a => a.Id == comment.ContentId);
                }
            }


            return(comments);
        }