public async Task <CountryModel> GetCountry(CountryRequest request) { var entity = _reader.Get(KycCountryNoSqlEntity.GeneratePartitionKey(), KycCountryNoSqlEntity.GenerateRowKey(request.CountryCode)); return(entity?.Country ?? await _grpcService.GetCountry(request)); }
public async Task InsertOrReplaceCountry(CountryModel country) { await using var context = new DatabaseContext(_dbContextOptionsBuilder.Options); await context.UpsertAsync(new[] { country }); await _cache.InsertOrReplaceAsync(KycCountryNoSqlEntity.Create(country)); }
public async Task RefreshCache() { await using var context = new DatabaseContext(_dbContextOptionsBuilder.Options); var countries = context.Countries.ToList(); foreach (var country in countries) { await _cache.InsertOrReplaceAsync(KycCountryNoSqlEntity.Create(country)); } }
public async Task DeleteCountry(string countryCode) { var country = await GetCountry(countryCode); await using var context = new DatabaseContext(_dbContextOptionsBuilder.Options); context.Countries.Remove(country); await context.SaveChangesAsync(); await _cache.DeleteAsync(KycCountryNoSqlEntity.GeneratePartitionKey(), KycCountryNoSqlEntity.GenerateRowKey(countryCode)); }
public async Task <List <CountryModel> > GetAllCountries() { var entities = await _cache.GetAsync(KycCountryNoSqlEntity.GeneratePartitionKey()); if (entities != null && entities.Any()) { return(entities.Select(t => t.Country).ToList()); } await RefreshCache(); await using var context = new DatabaseContext(_dbContextOptionsBuilder.Options); return(context.Countries.ToList()); }
public async Task <CountryModel> GetCountry(string countryCode) { if (countryCode == null) { return(null); } var entities = await _cache.GetAsync(KycCountryNoSqlEntity.GeneratePartitionKey(), KycCountryNoSqlEntity.GenerateRowKey(countryCode)); if (entities != null) { return(entities.Country); } await RefreshCache(); await using var context = new DatabaseContext(_dbContextOptionsBuilder.Options); return(context.Countries.FirstOrDefault(t => t.CountryCode == countryCode)); }