private async Task <CachedGaTraffic> GetTrafficAsync(string clientId) { var traffic = await _trafficRepository.GetAsync(clientId); return(traffic == null ? new CachedGaTraffic(GaTraffic.CreateDefault(clientId)) : new CachedGaTraffic(traffic)); }
public async Task <GaTraffic> GetGaUserTrafficAsync(string clientId) { var cachedValue = await _cache.TryGetOrAddAsync( GetTrafficKey(clientId), async() => await GetTrafficAsync(clientId)); return(cachedValue == null ? GaTraffic.CreateDefault(clientId) : new GaTraffic { ClientId = cachedValue.ClientId, Source = cachedValue.Source, Medium = cachedValue.Medium, Campaign = cachedValue.Campaign, Keyword = cachedValue.Keyword, Content = cachedValue.Content }); }