public QuoteServiceSchedule(IFCMAPIConnection conn, ILogger log, ScheduleServiceClientAction scheduleServiceClient, QueueConnectionClient queueFanout) { _conn = conn; _log = log; //_setting = setting; _log.Debug("[QuoteServiceSchedule.ctor()]"); // Initial the job server. _log.Debug("[QuoteServiceSchedule.ctor()] Set memory storage."); GlobalConfiguration.Configuration.UseMemoryStorage(); _log.Debug("[QuoteServiceSchedule.ctor()] Set background job server."); _jobServer = new BackgroundJobServer(new BackgroundJobServerOptions() { WorkerCount = 1 }); // Restore the schedule. _scheduleServiceClient = scheduleServiceClient ?? throw new ArgumentNullException(nameof(scheduleServiceClient)); _log.Debug("[QuoteServiceSchedule.ctor()] Restore the schedule..."); RestoreSchedule(); _log.Debug("[QuoteServiceSchedule.ctor()] Restore the schedule...done."); // Listen to the UpdateSchedule event. _scheduleFanout = queueFanout ?? throw new ArgumentNullException(nameof(scheduleServiceClient)); //_scheduleFanout.FanoutReceiver.InitListening(_setting.ScheduleTopic).Wait(); _scheduleFanout.FanoutReceiver.ReceivedMessageEvent += FanoutReceiver_ReceivedMessageEvent; }
public QuoteServiceAPIModule(IFCMAPIConnection fcmAPI) { Get("/", _ => "Quote Service"); Get("/Connect/Status", _ => fcmAPI.APIStatus.ToString()); Post("/Connect", parameters => { return(fcmAPI.Connect().Result ? HttpStatusCode.Accepted : HttpStatusCode.BadRequest); }); Post("/Reconnect", parameters => { return(fcmAPI.Reconnect().Result ? HttpStatusCode.Accepted : HttpStatusCode.BadRequest); }); Post("/Disconnect", _ => { return(fcmAPI.Disconnect()); }); Get("/Quote", _ => String.Join(",", fcmAPI.QuotesList.Select(x => x.Exchange + "," + x.Symbol).ToArray())); Post("/Quote/{exchange}/{symbol}", parameters => { var exchange = (string)parameters.exchange; var symbol = (string)parameters.symbol; return(fcmAPI.AddQuote(new Quote() { Exchange = exchange, Symbol = symbol }).Result ? HttpStatusCode.Accepted : HttpStatusCode.BadRequest); }); Delete("/Quote/{exchange}/{symbol}", parameters => { var exchange = (string)parameters.exchange; var symbol = (string)parameters.symbol; return(fcmAPI.RemoveQuote(new Quote() { Exchange = exchange, Symbol = symbol }).Result ? HttpStatusCode.Accepted : HttpStatusCode.BadRequest); }); Delete("/Quote", parameters => { return(fcmAPI.RemoveAllQuotes()); }); }
public HealthAction(IFCMAPIConnection apiConnection, ILogger logger, DataEventBroker <ConnectionStatusEvent> connStatusBroker) { _connStatusBroker = connStatusBroker; _conn = apiConnection; _log = logger; _connStatusBroker.Subscribe(async x => { logger.Debug("[HealthAction()] {ConnectionStatus} : {Message}", x.ConnectionStatus.ToString(), x.Message ); await Task.Run(async() => { switch (x.ConnectionStatus) { case ConnectionStatus.NotConnected: await apiConnection.Reconnect(); break; case ConnectionStatus.Connecting: //await CheckConnectingStatus(); await CheckConnectingStatus(); break; case ConnectionStatus.ConnectionReady: break; case ConnectionStatus.ConnectionError: await apiConnection.Reconnect(); break; default: //throw new ArgumentOutOfRangeException(); break; } }); }); //apiConnection.Connect().Wait(); _connStatusBroker.Publish(ConnectionStatusEvent.GetEvent(apiConnection.APIStatus, "Ready for Connect().")); }
public GrpcServer(IFCMAPIConnection conn, QuoteActionGRPCServerSetting setting, ILogger logger) { _log = logger; _setting = setting; _log.Debug("[QuoteActionServer.ctor] Host on {Host}:{Port}", setting.Host, setting.Port); _server = new Server() { Services = { QRService.QuoteService.QuoteService.BindService(new QuoteServiceGrpc(conn, logger)), CommandService.BindService(new CommandServiceGrpc(conn, logger)), Health.BindService(new HealthCheckGrpc(conn, logger)) }, Ports = { new ServerPort(setting.Host, setting.Port, ServerCredentials.Insecure) } }; //var healthImplementation = new HealthServiceImpl(); }
public HealthCheckGrpc(IFCMAPIConnection conn, ILogger logger) { _conn = conn; _log = logger; }
public CommandServiceGrpc(IFCMAPIConnection conn, ILogger logger) { _conn = conn; _log = logger; }
public QuoteServiceGrpc(IFCMAPIConnection conn, ILogger logger) { _conn = conn; _log = logger; }