@@ -62,33 +62,28 @@ public class Startup
6262## Example usage
6363### Use IMemcachedClient interface
6464``` cs
65- public class TabNavService
65+ public class HomeController : Controller
6666{
67- private ITabNavRepository _tabNavRepository ;
68- private IMemcachedClient _memcachedClient ;
67+ private readonly IMemcachedClient _memcachedClient ;
68+ private readonly IBlogPostService _blogPostService ;
6969
70- public TabNavService (
71- ITabNavRepository tabNavRepository ,
72- IMemcachedClient memcachedClient )
70+ public HomeController (IMemcachedClient memcachedClient , IBlogPostService blogPostService )
7371 {
74- _tabNavRepository = tabNavRepository ;
7572 _memcachedClient = memcachedClient ;
73+ _blogPostService = blogPostService ;
7674 }
7775
78- public async Task <IEnumerable < TabNav >> GetAll ()
76+ public async Task <IActionResult > Index ()
7977 {
80- var cacheKey = " aboutus_tabnavs_all" ;
81- var result = await _memcachedClient .GetAsync <IEnumerable <TabNav >>(cacheKey );
82- if (! result .Success )
83- {
84- var tabNavs = await _tabNavRepository .GetAll ();
85- await _memcachedClient .AddAsync (cacheKey , tabNavs , 300 );
86- return tabNavs ;
87- }
88- else
89- {
90- return result .Value ;
91- }
78+ var cacheKey = " blogposts-recent" ;
79+ var cacheSeconds = 600 ;
80+
81+ var posts = await _memcachedClient .GetValueOrCreateAsync (
82+ cacheKey ,
83+ cacheSeconds ,
84+ async () => await _blogPostService .GetRecent (10 ));
85+
86+ return Ok (posts );
9287 }
9388}
9489```
0 commit comments