Ejemplo n.º 1
0
        public async Task <T> TryGet <T>(string key, Func <Task <T> > getRates)
        {
            var currencyRate = await _memcachedClient
                               .GetValueOrCreateAsync(key, _cacheTimeout, getRates);

            return(currencyRate);
        }
Ejemplo n.º 2
0
        public async Task <Dictionary <string, CompanyModel> > GetCompanies([FromBody] UserFilter filter)
        {
            return(await cache.GetValueOrCreateAsync(GetCacheKey("companies", filter), CacheSeconds, async() =>
            {
                var ageFilter = GetAgeFilter(filter);
                var communityFilter = GetCommunityFilter(filter);
                UpdateLanguagesFilter(filter);

                var result = await surveyService.GetCompanyModels(
                    filter.Year,
                    ageFilter,
                    filter.cities,
                    filter.educations,
                    filter.experiences,
                    filter.professions,
                    filter.languages,
                    communityFilter);

                return result.ToDictionary(cm => cm.Name, cm => cm);
            }));
        }
Ejemplo n.º 3
0
        public async Task <bool> Create()
        {
            var cacheKey     = "blogposts-recent";
            var cacheSeconds = 600;

            var posts = await _client.GetValueOrCreateAsync(
                cacheKey,
                cacheSeconds,
                new ItemData());

            return(true);
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Index()
        {
            _logger.LogDebug("Executing _memcachedClient.GetValueOrCreateAsync...");

            var cacheSeconds = 600;
            var posts        = await _memcachedClient.GetValueOrCreateAsync(
                CacheKey,
                cacheSeconds,
                async() => await _blogPostService.GetRecent(10));

            _logger.LogDebug("Done _memcachedClient.GetValueOrCreateAsync");

            return(Ok(posts));
        }
Ejemplo n.º 5
0
 public async Task <List <string> > GetCities()
 => await memcachedClient.GetValueOrCreateAsync(GetCacheKey(nameof(GetCities)), CacheSeconds, async() =>
                                                await dbContext
                                                .Interviewees
                                                .GroupBy(i => i.City)
                                                .Where(g => g.Count() > 2)
                                                .OrderByDescending(g => g.Count())
                                                .Select(g => g.Key)
                                                .ToListAsync());
Ejemplo n.º 6
0
        public async Task <UserDto> GetUserByLoginName(string loginName, bool cached = true)
        {
            if (string.IsNullOrWhiteSpace(loginName))
            {
                throw new ArgumentNullException(nameof(loginName));
            }

            if (!cached)
            {
                return(await GetUserByLoginNameInternal(loginName));
            }

            var cacheKey = "ucenter_userdto_loginname_" + KeyTransformerUtility.ToSHA1Hash(loginName);

            return(await _memcachedClient.GetValueOrCreateAsync(
                       cacheKey,
                       3600,
                       () => GetUserByLoginNameInternal(loginName)));
        }
Ejemplo n.º 7
0
 public Task <T1> GetValueOrCreateAsync <T1>(string key, int cacheSeconds, Func <Task <T1> > generator)
 {
     return(_memcachedClient.GetValueOrCreateAsync <T1>(key, cacheSeconds, generator));
 }
Ejemplo n.º 8
0
 public async Task <IEnumerable <ScheduleFollowingDto> > GetScheduleFollowings(long id)
 {
     return(await _cache.GetValueOrCreateAsync(CacheKeyStore.ScheduleFollowings(id),
                                               3600 * 24,
                                               () => GetCacheScheduleFollowings(id)));
 }
Ejemplo n.º 9
0
        public Task <IEnumerable <RelationGroupDto> > GetMyGroupsAsync(Guid userId)
        {
            var key = "ucenter_relation_groups_" + userId;

            return(_cache.GetValueOrCreateAsync(key, 3600 * 10, () => _api.GetMyGroups(userId)));
        }
Ejemplo n.º 10
0
 public async Task <IEnumerable <FeedDto> > GetAcademyFeedsAsync(int page, int size)
 {
     return(await _cache.GetValueOrCreateAsync <IEnumerable <FeedDto> >(CacheKeyStore.HomeFeeds(page), 5 * 60,
                                                                        () => _feedsApi.GetFeedsByAppId(AppConst.AppId, page, size)));
 }