public async Task <IViewComponentResult> InvokeAsync()
        {
            try
            {
                var key = "recent-activity";
                List <ContentViewModel> data;
                if (!_cache.TryGetValue(key, out data))
                {
                    var controller = new ContentManager();
                    data = controller.Search(new SearchRequest()
                    {
                        PageSize = 25
                    });

                    foreach (var content in data)
                    {
                        if (content.Type == "answer")
                        {
                            var parent = ContentApi.GetParent(content.Id).First();
                            content.Title    = parent.Title;
                            content.ParentId = parent.Id;
                        }
                    }
                    _cache.Set(key, data, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(1)));
                }
                return(View(data));
            }
            catch (Exception e)
            {
                return(View(new List <ContentViewModel>()));
            }
        }
 public static ContentViewModel WithParent(this ContentViewModel c)
 {
     c.Parent = ContentApi.GetParent(c.Id).First().AsViewModel();
     return(c);
 }