async Task <IReadOnlyList <int> > ITrainingService.GetTrainingPopulationUPNs(TrainingPopulationKey trainingPopulationKey, string auditSubGeoKey) { var sqlString = ""; switch (trainingPopulationKey) { case TrainingPopulationKey.AuditSeniorsandAssociatesLevel2and3: sqlString = Sql.TrainingPopulation_GetAuditSeniorsandAssociateslevel2and3; break; case TrainingPopulationKey.AuditAssociatesLevel0and1: sqlString = Sql.TrainingPopulation_GetAuditAssociatesLevel0and1; break; case TrainingPopulationKey.AuditSeniorsandAssociates: sqlString = Sql.TrainingPopulation_GetAuditSeniorsandAssociates; break; case TrainingPopulationKey.AuditSeniorsLevel2andGreater: sqlString = Sql.TrainingPopulation_GetAuditSeniorsLevel2andGreater; break; case TrainingPopulationKey.AuditSeniorsLevel0: sqlString = Sql.TrainingPopulation_GetAuditSeniorsLevel0; break; case TrainingPopulationKey.AuditSeniorsLevel1: sqlString = Sql.TrainingPopulation_GetAuditSeniorsLevel1; break; case TrainingPopulationKey.AuditAssociatesLevel2andGreater: sqlString = Sql.TrainingPopulation_GetAuditAssociatesLevel2andGreater; break; default: throw new ArgumentOutOfRangeException("Unknown Training Population Key: " + trainingPopulationKey); } var upns = await _dapper.Query <int>(sqlString, new { AuditSubGeoKey = auditSubGeoKey }); return(upns.ToList()); }
async Task <IReadOnlyList <int> > ICachedTrainingService.GetTrainingPopulationUPNs(TrainingPopulationKey trainingPopulationKey, string auditSubGeoKey) { var cache_key = ListTrainingPopulation_CacheKey + trainingPopulationKey + "-" + auditSubGeoKey; var result = await _cache.GetAsync <IReadOnlyList <int> >(cache_key); if (result == null) { result = await _trainingService.GetTrainingPopulationUPNs(trainingPopulationKey, auditSubGeoKey); await _cache.SetAsync(cache_key, result); } return(result); }