public async Task <T> ResolveAsync <T>(string id) where T : IDatabaseModelBase
 {
     return(await _cacheProvider.GetOrCreateAsync <T>(
                objectId : CacheHelper.CreateKey <T>(id),
                create : () => _cacheProvider.GetObjectAsync <T>(id),
                expiry : TimeSpan.FromDays(7)));
 }
Пример #2
0
        public async Task <TUser> FindByIdAsync(string userId)
        {
            ThrowIfDisposed();

            if (userId == null)
            {
                throw new ArgumentNullException("userId");
            }

            //todo : allow to turn and off memory cache
            var result = await _cacheProvider.GetOrCreateAsync <TUser>(CacheHelper.CreateKey <TUser>(userId), async() =>
            {
                return((await GetUsers(user => user.Id == userId)).FirstOrDefault());
            }) as TUser;

            return(result);
        }