public Task <IEnumerable <string> > GetCultureCodesAsync(ContentVersion currentVersion = null) { return(Task.FromResult(_cache.Keys.AsEnumerable())); }
public Task <IEnumerable <ContentItem> > GetAllContentItemsAsync(string cultureCode, ContentVersion currentVersion = null) { return(Task.FromResult(GetCacheForCulture(cultureCode).Values.AsEnumerable())); }
public async Task <IEnumerable <ContentItem> > GetAllContentItemsAsync(string cultureCode, ContentVersion requestedVersion) { if (requestedVersion == null) { requestedVersion = await GetVersionAsync() .ConfigureAwait(false); } string fileName = GetCultureFileName(cultureCode); var tryCount = 100; for (int i = 0; i < tryCount; i++) { try { if (!File.Exists(fileName) && NextSource != null) { var items = await NextSource.GetAllContentItemsAsync(cultureCode, requestedVersion) .ConfigureAwait(false); await SaveAllContentItemsAsync(cultureCode, items) .ConfigureAwait(false); } using var file = File.OpenRead(fileName); using var sr = new StreamReader(file); using var reader = new JsonTextReader(sr); var serializer = new JsonSerializer(); return(serializer.Deserialize <IEnumerable <ContentItem> >(reader)); } catch (IOException) { if (i == (tryCount - 1)) { throw; } await Task.Delay(100).ConfigureAwait(false); } } #pragma warning disable CA1303 // Do not pass literals as localized parameters throw new IOException("Error Getting File"); #pragma warning restore CA1303 // Do not pass literals as localized parameters }