protected override DriverResult Display(TwitterWidgetPart part, string displayType, dynamic shapeHelper) { // Get tweets, from the cache or from twitter var tweets = _cache.Get(String.Format(TwitterUserCacheKey, part.TwitterUserName), ctx => { ctx.Monitor(_clock.When(TimeSpan.FromMinutes(part.CacheMinutes))); return(_twitter.GetLatestTweetsFor(part.TwitterUserName, part.MaxPosts)); }); return(ContentShape("Parts_TwitterWidget", () => shapeHelper.Parts_TwitterWidget( TwitterUserName: part.TwitterUserName ?? String.Empty, Tweets: tweets))); }