示例#1
0
        public async Task <string> GetAsync(string key, ExpirePolicy policy)
        {
            TimeSpan span;

            switch (policy)
            {
            default:
            case ExpirePolicy.Never:
                span = TimeSpan.FromDays(1000);
                break;

            case ExpirePolicy.Memory:
                span = MemoryExpirationPolicy == default(TimeSpan) ? _appSettings.MemoryDefault : MemoryExpirationPolicy;
                break;

            case ExpirePolicy.Daily:
                span = DailyExpirationPolicy == default(TimeSpan) ? _appSettings.DailyDefault : DailyExpirationPolicy;
                break;

            case ExpirePolicy.Season:
                span = SeasonExpirationPolicy == default(TimeSpan) ? _appSettings.SeasonDefault : SeasonExpirationPolicy;
                break;

            case ExpirePolicy.History:
                span = HistoryExpirationPolicy == default(TimeSpan) ? _appSettings.HistoryDefault : HistoryExpirationPolicy;
                break;
            }

            return(await GetFromMemoryOrUpdate(key, span));
        }
示例#2
0
        public virtual async Task <TResult> GetAsync(ExpirePolicy policy, params object[] args)
        {
            var key = args.Length > 0 ? string.Format(RelPath, args) : RelPath;

            var json = await _cacheManager.GetAsync(key, policy);

            var root = JsonConvert.DeserializeObject <TRoot>(json);

            return(Transform().Invoke(root));
        }
示例#3
0
 public string Get(string key, ExpirePolicy policy)
 {
     return(AsyncHelper.RunSync(async() => await GetAsync(key, policy)));
 }
示例#4
0
 public virtual TResult Get(ExpirePolicy policy, params object[] args)
 {
     return(AsyncHelper.RunSync(async() => await GetAsync(policy, args)));
 }
示例#5
0
        protected virtual async Task <string> GetStringAsync(ExpirePolicy policy, string relPath, params object[] args)
        {
            var key = args.Length > 0 ? string.Format(relPath, args) : relPath;

            return(await _cacheManager.GetAsync(key, policy));
        }
示例#6
0
 public async Task <IEnumerable <Season> > GetAsync(ExpirePolicy policy, string leagueId)
 {
     LeagueId = leagueId;
     return(await base.GetAsync(policy, leagueId));
 }