static async Task Main(string[] args)
        {
            GrpcClientFactory.AllowUnencryptedHttp2 = true;

            Console.Write("Press enter to start");
            Console.ReadLine();

            //CheckNoSql();

            using ILoggerFactory loggerFactory =
                      LoggerFactory.Create(builder =>
                                           builder.AddSimpleConsole(options =>
            {
                options.IncludeScopes   = true;
                options.SingleLine      = true;
                options.TimestampFormat = "hh:mm:ss ";
            }));

            ILogger <Program> logger = loggerFactory.CreateLogger <Program>();

            var serviceBusClient = new MyServiceBusTcpClient(() => "servicebus-test.infrastructure.svc.cluster.local:6421", "TestApp");



            Console.WriteLine("End");
            Console.ReadLine();
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Register IPublisher for BidAsk
 /// </summary>
 public static void RegisterBidAskPublisher(this ContainerBuilder builder, MyServiceBusTcpClient client)
 {
     builder
     .RegisterInstance(new BidAskMyServiceBusPublisher(client))
     .As <IPublisher <BidAsk> >()
     .SingleInstance();
 }
 public MyServiceBusPublisher(MyServiceBusTcpClient client, string topicName, bool immediatelyPersist)
 {
     this._client        = client;
     _topicName          = topicName;
     _immediatelyPersist = immediatelyPersist;
     this._client.CreateTopicIfNotExists(topicName);
 }
 public static void RegisterManualBalanceChangeOperationSubscriber(this ContainerBuilder builder,
                                                                   MyServiceBusTcpClient serviceBusClient, string queue)
 {
     builder.RegisterMyServiceBusSubscriberBatch <ManualChangeBalanceMessage>(serviceBusClient,
                                                                              ManualChangeBalanceMessage.TopicName, queue,
                                                                              TopicQueueType.Permanent);
 }
Ejemplo n.º 5
0
 public ApplicationLifetimeManager(IHostApplicationLifetime appLifetime, ILogger <ApplicationLifetimeManager> logger,
                                   MyServiceBusTcpClient busTcpClient)
     : base(appLifetime)
 {
     _logger       = logger;
     _busTcpClient = busTcpClient;
 }
 public ApplicationLifetimeManager(IHostApplicationLifetime appLifetime,
                                   ILogger <ApplicationLifetimeManager> logger,
                                   MyServiceBusTcpClient serviceBusTcpClient,
                                   OrderBookAggregator bookAggregator)
     : base(appLifetime)
 {
     _logger = logger;
     _serviceBusTcpClient = serviceBusTcpClient;
     _bookAggregator      = bookAggregator;
 }
Ejemplo n.º 7
0
        protected override void Load(ContainerBuilder builder)
        {
            var appName          = ApplicationEnvironment.HostName ?? ApplicationEnvironment.AppName;
            var serviceBusClient = new MyServiceBusTcpClient(Program.ReloadedSettings(model => model.ServiceBusHostPort), appName);

            builder.RegisterInstance(serviceBusClient).AsSelf().SingleInstance();

            builder.RegisterInstance(new PriceServiceBusSubscriber(serviceBusClient, "Candles-History-1", Program.Settings.PricesTopicName))
            .As <ISubscriber <PriceMessage> >()
            .SingleInstance();


            builder
            .RegisterType <CandleBidAskCollectorJob>()
            .AutoActivate()
            .SingleInstance();

            builder
            .RegisterType <CandleTradeCollectorJob>()
            .AutoActivate()
            .SingleInstance();

            builder
            .RegisterType <DatabaseClearingJob>()
            .As <IDatabaseClearingJob>()
            .As <IStartable>()
            .AutoActivate()
            .SingleInstance();

            builder
            .RegisterType <CandleBidAskNoSqlWriterManager>()
            .As <ICandleBidAskNoSqlWriterManager>()
            .SingleInstance();

            builder
            .RegisterType <CandleTradeNoSqlWriterManager>()
            .As <ICandleTradeNoSqlWriterManager>()
            .SingleInstance();

            builder
            .RegisterType <CandleBidAskStoreJob>()
            .As <ICandleBidAskStoreJob>()
            .As <IStartable>()
            .AutoActivate()
            .SingleInstance();

            builder
            .RegisterType <CandleTradeStoreJob>()
            .As <ICandleTradeStoreJob>()
            .As <IStartable>()
            .AutoActivate()
            .SingleInstance();
        }
Ejemplo n.º 8
0
        public static void RegisterSignalBitGoSessionStateUpdateSubscriber(this ContainerBuilder builder,
                                                                           MyServiceBusTcpClient client,
                                                                           string queueName,
                                                                           TopicQueueType queryType)
        {
            var subs = new SignalBitGoSessionStateUpdateSubscriber(client, queueName, queryType);

            builder
            .RegisterInstance(subs)
            .As <ISubscriber <SignalBitGoSessionStateUpdate> >()
            .SingleInstance();
        }
        public static MyServiceBusTcpClient Create(Func <string> getHostPort, string name, ILogger logger)
        {
            var serviceBusClient = new MyServiceBusTcpClient(getHostPort, name);

            serviceBusClient.Log.AddLogException(ex => logger.LogInformation(ex, "Exception in MyServiceBusTcpClient"));
            serviceBusClient.Log.AddLogInfo(info => logger.LogDebug($"MyServiceBusTcpClient[info]: {info}"));
            serviceBusClient.SocketLogs.AddLogInfo((context, msg) => logger.LogInformation($"MyServiceBusTcpClient[Socket {context?.Id}|{context?.ContextName}|{context?.Inited}][Info] {msg}"));
            serviceBusClient.SocketLogs.AddLogException((context, exception) => logger.LogInformation(exception, $"MyServiceBusTcpClient[Socket {context?.Id}|{context?.ContextName}|{context?.Inited}][Exception] {exception.Message}"));


            return(serviceBusClient);
        }
Ejemplo n.º 10
0
 /// <summary>
 /// Register ISubscriber for BidAsk
 /// </summary>
 public static void RegisterBidAskSubscriber(this ContainerBuilder builder, MyServiceBusTcpClient client, string queueName, TopicQueueType queryType, bool batchSubscribe)
 {
     if (batchSubscribe)
     {
         builder
         .RegisterInstance(new BidAskMyServiceBusSubscriber(client, queueName, queryType, true))
         .As <ISubscriber <IReadOnlyList <BidAsk> > >()
         .SingleInstance();
     }
     else
     {
         builder
         .RegisterInstance(new BidAskMyServiceBusSubscriber(client, queueName, queryType, false))
         .As <ISubscriber <IReadOnlyList <BidAsk> > >()
         .SingleInstance();
     }
 }
        private static void RegisterCandlePublisher(ContainerBuilder builder)
        {
            ServiceBusLogger = Program.LogFactory.CreateLogger(nameof(MyServiceBusTcpClient));

            var serviceBusClient = new MyServiceBusTcpClient(Program.ReloadedSettings(e => e.CandleServiceBusHostPort), ApplicationEnvironment.HostName);

            serviceBusClient.Log.AddLogException(ex => ServiceBusLogger.LogError(ex as Exception, "[CANDLE] Exception in MyServiceBusTcpClient"));
            serviceBusClient.Log.AddLogInfo(info => ServiceBusLogger.LogInformation($"[CANDLE] {info}"));
            serviceBusClient.SocketLogs.AddLogException((context, ex) => ServiceBusLogger.LogError(ex as Exception, $"[CANDLE] [Socket {context?.Id}|{context?.Inited}]Exception in MyServiceBusTcpClient on Socket level"));
            serviceBusClient.SocketLogs.AddLogInfo((context, info) => ServiceBusLogger.LogInformation($"[CANDLE] MyServiceBusTcpClient[Socket {context?.Id}|{context?.Inited}] {info}"));

            var candlePublisher = new BidAskMyServiceBusPublisher(serviceBusClient, "spot-bidask");

            builder
            .RegisterInstance(candlePublisher)
            .As <IPublisher <IBidAsk> >()
            .SingleInstance();

            serviceBusClient.Start();
        }
Ejemplo n.º 12
0
        public static ContainerBuilder RegisterPositionPortfolioSubscriber(this ContainerBuilder builder, MyServiceBusTcpClient client, string queryName, TopicQueueType queryType)
        {
            builder.RegisterMyServiceBusSubscriberBatch <PositionPortfolio>(client, PositionPortfolio.TopicName, queryName, queryType);

            return(builder);
        }
Ejemplo n.º 13
0
 public static void RegisterTradeHistoryServiceBusClient(this ContainerBuilder builder, MyServiceBusTcpClient client, string queueName, TopicQueueType queryType, bool batchSubscriber)
 {
     if (batchSubscriber)
     {
         builder
         .RegisterInstance(new WalletTradeServiceBusSubscriber(client, queueName, queryType, true))
         .As <ISubscriber <IReadOnlyList <WalletTradeMessage> > >()
         .SingleInstance();
     }
     else
     {
         builder
         .RegisterInstance(new WalletTradeServiceBusSubscriber(client, queueName, queryType, false))
         .As <ISubscriber <WalletTradeMessage> >()
         .SingleInstance();
     }
 }
 public BidAskMyServiceBusPublisher(MyServiceBusTcpClient client)
 {
     _client = client;
     _client.CreateTopicIfNotExists(TopicNames.BidAsk);
 }
Ejemplo n.º 15
0
 public TradeVolumeServiceBusSubscriber(MyServiceBusTcpClient client, string queueName, TopicQueueType queryType, bool batchSubscribe) :
     base(client, TopicNames.PriceTradeVolume, queueName, queryType,
          bytes => bytes.ByteArrayToServiceBusContract <TradeVolume>(), batchSubscribe)
 {
 }
Ejemplo n.º 16
0
 public ClientRegistrationServiceBusSubscriber(MyServiceBusTcpClient client, string queueName, TopicQueueType queryType, bool batchSubscribe) :
     base(client, TopicNames.ClientRegistration, queueName, queryType,
          bytes => bytes.ByteArrayToServiceBusContract <ClientRegistrationMessage>(), batchSubscribe)
 {
 }
Ejemplo n.º 17
0
 public static void RegisterWithdrawalVerificationPublisher(this ContainerBuilder builder, MyServiceBusTcpClient serviceBusClient)
 {
     builder.RegisterMyServiceBusPublisher <WithdrawalVerifiedMessage>(serviceBusClient, WithdrawalVerifiedMessage.TopicName, true);
 }
Ejemplo n.º 18
0
 public static void RegisterOperationHistoryPublisher(this ContainerBuilder builder,
                                                      MyServiceBusTcpClient client)
 {
     builder.RegisterMyServiceBusPublisher <OperationUpdate>(client,
                                                             OperationUpdate.TopicName, false);
 }
Ejemplo n.º 19
0
 public WalletTradeServiceBusSubscriber(MyServiceBusTcpClient client, string queueName, TopicQueueType queryType, bool batchSubscriber) :
     base(client, WalletTradeMessage.TopicName, queueName, queryType,
          bytes => bytes.ByteArrayToServiceBusContract <WalletTradeMessage>(), batchSubscriber)
 {
 }
Ejemplo n.º 20
0
 public PriceServiceBusSubscriber(MyServiceBusTcpClient client, string queueName, string topicName) :
     base(client, topicName, queueName, TopicQueueType.Permanent,
          bytes => bytes.ByteArrayToServiceBusContract())
 {
 }
Ejemplo n.º 21
0
 public BidAskMyServiceBusSubscriber(MyServiceBusTcpClient client, string queueName, TopicQueueType queryType, bool batchSubscribe) :
     base(client, TopicNames.BidAsk, queueName, queryType,
          bytes => bytes.ByteArrayToServiceBusContract <BidAsk>(), batchSubscribe)
 {
 }
 public static void RegisterDepositOperationSubscriberBatch(this ContainerBuilder builder,
                                                            MyServiceBusTcpClient serviceBusClient, string queue)
 {
     builder.RegisterMyServiceBusSubscriberBatch <Deposit>(serviceBusClient, Deposit.TopicName, queue,
                                                           TopicQueueType.Permanent);
 }
Ejemplo n.º 23
0
 /// <summary>
 /// Register IPublisher for ClientRegistrationMessage
 /// </summary>
 public static void RegisterClientRegistrationPublisher(this ContainerBuilder builder, MyServiceBusTcpClient client)
 {
     builder
     .RegisterInstance(new ClientRegistrationServiceBusPublisher(client))
     .As <IPublisher <ClientRegistrationMessage> >()
     .SingleInstance();
 }
        public static ContainerBuilder RegisterMyServiceBusPublisher <T>(this ContainerBuilder builder, MyServiceBusTcpClient client, string topicName, bool immediatelyPersist)
        {
            // publisher
            builder
            .RegisterInstance(new MyServiceBusPublisher <T>(client, topicName, immediatelyPersist))
            .As <IPublisher <T> >()
            .SingleInstance();

            return(builder);
        }
        public static ContainerBuilder RegisterMyServiceBusSubscriberBatch <T>(this ContainerBuilder builder, MyServiceBusTcpClient client, string topicName, string queueName, TopicQueueType queryType)
        {
            // batch subscriber
            builder
            .RegisterInstance(new MyServiceBusSubscriber <T>(client, topicName, queueName, queryType, true))
            .As <ISubscriber <IReadOnlyList <T> > >()
            .SingleInstance();

            return(builder);
        }
 public static void RegisterClientRegisterFailAlreadyExistsSubscriber(this ContainerBuilder builder, MyServiceBusTcpClient serviceBusClient, string queue)
 {
     builder.RegisterMyServiceBusSubscriberBatch <ClientRegisterFailAlreadyExistsMessage>(serviceBusClient, ClientRegisterFailAlreadyExistsMessage.TopicName, queue,
                                                                                          TopicQueueType.Permanent);
 }
Ejemplo n.º 27
0
 public static void RegisterWithdrawalOperationSubscriber(this ContainerBuilder builder, MyServiceBusTcpClient serviceBusClient, string queue)
 {
     builder.RegisterMyServiceBusSubscriberBatch <Withdrawal>(serviceBusClient, Withdrawal.TopicName, queue,
                                                              TopicQueueType.Permanent);
 }
Ejemplo n.º 28
0
 public ClientRegistrationServiceBusPublisher(MyServiceBusTcpClient client)
 {
     _client = client;
     _client.CreateTopicIfNotExists(TopicNames.ClientRegistration);
 }
Ejemplo n.º 29
0
        public Subscriber(MyServiceBusTcpClient client, string topicName, string queueName, TopicQueueType queryType, Func <ReadOnlyMemory <byte>, T> deserializer)
        {
            _deserializer = deserializer;

            client.Subscribe(topicName, queueName, queryType, Reader);
        }
Ejemplo n.º 30
0
 /// <summary>
 /// Register IPublisher for TradeVolume
 /// </summary>
 public static void RegisterTradeVolumePublisher(this ContainerBuilder builder, MyServiceBusTcpClient client)
 {
     builder
     .RegisterInstance(new TradeVolumeServiceBusPublisher(client))
     .As <IPublisher <TradeVolume> >()
     .SingleInstance();
 }