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