@@ -62,33 +62,28 @@ public class Startup
62
62
## Example usage
63
63
### Use IMemcachedClient interface
64
64
``` cs
65
- public class TabNavService
65
+ public class HomeController : Controller
66
66
{
67
- private ITabNavRepository _tabNavRepository ;
68
- private IMemcachedClient _memcachedClient ;
67
+ private readonly IMemcachedClient _memcachedClient ;
68
+ private readonly IBlogPostService _blogPostService ;
69
69
70
- public TabNavService (
71
- ITabNavRepository tabNavRepository ,
72
- IMemcachedClient memcachedClient )
70
+ public HomeController (IMemcachedClient memcachedClient , IBlogPostService blogPostService )
73
71
{
74
- _tabNavRepository = tabNavRepository ;
75
72
_memcachedClient = memcachedClient ;
73
+ _blogPostService = blogPostService ;
76
74
}
77
75
78
- public async Task <IEnumerable < TabNav >> GetAll ()
76
+ public async Task <IActionResult > Index ()
79
77
{
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 );
92
87
}
93
88
}
94
89
```
0 commit comments