public async Task <TQueryResult> GetAsync(TQuery query, CancellationToken token) { var attr = _decoratee.GetType().GetMethod("GetAsync")?.GetCustomAttribute <CacheAttribute>(); if (attr == null) { return(await _decoratee.GetAsync(query, token)); } if (_cacheProvider is null) { return(await _decoratee.GetAsync(query, token)); } var cacheKey = $"{query.GetType().Name}_{query.AsDictionary(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).ToContentString()}"; //var cacheKey = CacheResultInterceptor.GetCacheKey(_decoratee.GetType(), "GetAsync", new object[] { query }); var result = _cacheProvider.Value.Get <TQueryResult>(cacheKey, attr.Region); if (result != null) { return(result); } result = await _decoratee.GetAsync(query, token); _cacheProvider.Value.Set(cacheKey, attr.Region, result, attr.Duration, attr.Slide); return(result); }
public async Task <IEnumerable <NamedQueryModel> > GetCompaniesIndex() => await _namedQueryHandler.GetAsync();
GetLocationsIndex(int companyId) => await _namedQueryHandler.GetAsync( l => l.CompanyId == companyId);