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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        /// <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);
        }