public bool PopulateFromAgg(IAggVolumeDataProvider prov, AssetPair pair) { if (prov == null) { return(false); } var norm = pair.Normalised; if (UtcAggLatest.Get(norm.Id).IsWithinTheLast(TimeSpan.FromDays(10))) { return(false); } var aggn = GetVolumeDataAgg(prov, norm); var aggr = GetVolumeDataAgg(prov, norm.Reversed); if (aggr != null) { AddRange(aggr.Volume); } if (aggn != null) { AddRange(aggn.Volume); } UtcAggLatest.Add(norm.Id, DateTime.UtcNow); return(true); }
public VolumeDbProvider() { ProviderAggVolumeData = Networks.I.Providers.OfType <IAggVolumeDataProvider>().FirstOrDefault(); ProvidersPublicVolume = Networks.I.Providers.OfType <IPublicVolumeProvider>().Where(x => x.IsDirect).ToList(); ProvidersPublicPricing = Networks.I.Providers.OfType <IPublicPricingProvider>().Where(x => x.IsDirect && x.PricingFeatures.HasVolume).ToList(); Data = new VolumeData(); }
public static Task <ApiResponse <PublicVolumeResponse> > GetAggVolumeDataAsync(IAggVolumeDataProvider provider, AggVolumeDataContext context) { return(ApiHelpers.WrapExceptionAsync(() => provider.GetAggVolumeDataAsync(context), nameof(GetAggVolumeData), provider, context)); }
public static ApiResponse <PublicVolumeResponse> GetAggVolumeData(IAggVolumeDataProvider provider, AggVolumeDataContext context) { return(AsyncContext.Run(() => GetAggVolumeDataAsync(provider, context))); }
private PublicVolumeResponse GetVolumeDataAgg(IAggVolumeDataProvider prov, AssetPair pair) { var apir = ApiCoordinator.GetAggVolumeData(prov, new AggVolumeDataContext(pair)); return(apir.IsNull ? null : apir.Response); }
private PricingProvider() { ProviderAggVolumeData = Networks.I.Providers.OfType <IAggVolumeDataProvider>().FirstOrDefault(); ProvidersPublicPricing = Networks.I.Providers.OfType <IPublicPricingProvider>().Where(x => x.IsDirect).ToList(); }