public static QuotationServiceBuilder AddWebSocketPublisher( this QuotationServiceBuilder builder) { var services = builder.Services; services.AddSingleton(typeof(IQuotationPublisher), ps => ps.GetService <WebSocketPublisher>()); services.AddSingleton(typeof(WebSocketPublisher)); services.AddSingleton(typeof(QuotationStatusPublisher)); return(builder); }
public static QuotationServiceBuilder AddQuotationDapperStore(this QuotationServiceBuilder builder, string connectionString) { var services = builder.Services; services.AddScoped(typeof(ISymbolStore), typeof(SymbolStore)); services.AddScoped(typeof(IChartInfoStore), typeof(ChartInfoStore)); builder.Services.AddDbUow(() => { var conn = new SqlConnection(connectionString); return(new QuotationUow(conn)); }); return(builder); }
/// <summary> /// </summary> /// <returns></returns> public static QuotationServiceBuilder AddQuotation(this IServiceCollection services) { services.AddSingleton(new QuotationContext()); //添加报价context,用于统计和cache数据 var setting = new QuotationServiceBuilder(services); services.AddSingleton(setting); services.AddSingleton(typeof(IQuotationPublisher), typeof(QuotationContextPublisher)); services.AddSingleton(serviceProvider => { var quotationProvider = serviceProvider.GetService <QuotationProvider>(); var publisher = serviceProvider.GetServices <IQuotationPublisher>(); return(new PublishService(quotationProvider, publisher.ToArray())); }); return(setting); }
public static QuotationServiceBuilder AddRedstiQuotationProvider (this QuotationServiceBuilder quotationServiceBuilder, Action <RedistQuotationProviderSetting> settingFunc) { var services = quotationServiceBuilder.Services; services.AddSingleton <RedistQuotationProviderSetting>(); var redistSetting = new RedistQuotationProviderSetting(); settingFunc(redistSetting); services.AddSingleton(redistSetting); services.AddSingleton(p => { var store = p.GetRequiredService <ISymbolStore>(); var builder = p.GetRequiredService <RedistQuotationProviderSetting>(); return((QuotationProvider) new RedisQuotationProvider(store, builder)); }); return(quotationServiceBuilder); }