public async Task <AssetPairs> GetPairsAsync(Network network, bool onlyDirect = true) { var q = onlyDirect ? network?.Providers.OfType <IAssetPairsProvider>().Where(x => x.IsDirect) : network?.Providers.OfType <IAssetPairsProvider>(); var prov = q.FirstProvider(); if (prov == null) { Logging.I.DefaultLogger.Error($"An instance of {nameof(IAssetPairsProvider)} cannot be located for {network.Name}"); return(null); } var r = await ApiCoordinator.GetAssetPairsAsync(prov).ConfigureAwait(false); return(r.IsNull ? null : r.Response); }
public async void RefreshAsync() { var prov = Network.Providers.FirstProviderOf <IAssetPairsProvider>(); if (prov == null) { throw new Exception($"Cannot 'refresh' {nameof(AssetPairData)} for {Network.Name} as a {nameof(IAssetPairsProvider)} cannot be located."); } var pairs = await ApiCoordinator.GetAssetPairsAsync(prov).ConfigureAwait(false); if (pairs.IsFailed) { return; } Pairs = pairs.Response; }