protected virtual async Task GetAllResourcesAsync() { _resources = Array.Empty <LocalizedResource>(); CurrentCulture = CultureInfo.CurrentCulture; var parent = CurrentCulture.Parent; var filter = $"{nameof(LocalizedResource.CultureId)} eq '{CurrentCulture.Name}'"; if (!string.IsNullOrWhiteSpace(parent?.Name)) { filter += $" or {nameof(LocalizedResource.CultureId)} eq '{parent.Name}'"; } var page = await _store.GetAsync(new PageRequest { Filter = filter, OrderBy = nameof(LocalizedResource.CultureId) }).ConfigureAwait(false); _resources = page.Items; foreach (var resource in _resources) { KeyValuePairs[resource.Key] = new LocalizedString(resource.Key, resource.Value ?? resource.Key, resource.Value == null); } ResourceReady?.Invoke(); }
private void OnAsyncThread() { while (asyncThread != null) { asyncThreadEvent.WaitOne(); while (true) { string path; lock (metadataAsyncRequests) { path = metadataAsyncRequests.FirstOrDefault(); } if (path == null) { break; } Metadata metadata = RequestMetadataInner(path, true); lock (metadataAsyncRequests) { metadataAsyncRequests.Remove(path); } asyncResourceReadyEvent.Set(); ResourceReady?.Invoke(path); } } }