public override void Run()
        {
            try
            {
                string           issuerName   = "owner";                                             // ConfigurationSettings.AppSettings["UserName"];
                string           issuerKey    = "wJBJaobUmarWn6kqv7QpaaRh3ttNVr3w1OjiotVEOL4=";      //  ConfigurationSettings.AppSettings["Password"];
                string           calcEndPoint = "sb://proazure.servicebus.windows.net/sample/calc/"; //ConfigurationSettings.AppSettings["EndPoint"];
                string           logEndPoint  = "sb://proazure.servicebus.windows.net/sample/log/";  //ConfigurationSettings.AppSettings["EndPoint"];
                ServiceBusLogger logger       = new ServiceBusLogger(logEndPoint, issuerName, issuerKey);
                logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Role Started");

                Uri uri = new Uri(calcEndPoint);
                TransportClientEndpointBehavior sharedSecretServiceBusCredential = new TransportClientEndpointBehavior();
                sharedSecretServiceBusCredential.TokenProvider = TokenProvider.CreateSharedSecretTokenProvider(issuerName, issuerKey);
                host = new ServiceHost(typeof(CalculatorService), uri);
                logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Service Host created");
                ContractDescription contractDescription = ContractDescription.GetContract(typeof(ICalculator), typeof(CalculatorService));
                ServiceEndpoint     serviceEndPoint     = new ServiceEndpoint(contractDescription);

                serviceEndPoint.Address = new EndpointAddress(uri);
                logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Address created");

                serviceEndPoint.Binding = new NetTcpRelayBinding();

                logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Binding created");

                //Set the DiscoveryType to Public and Publish this in the Service Registry
                ServiceRegistrySettings serviceRegistrySettings = new ServiceRegistrySettings();
                serviceRegistrySettings.DiscoveryMode = DiscoveryType.Public;
                serviceRegistrySettings.DisplayName   = "My Calc Service";


                serviceEndPoint.Behaviors.Add(sharedSecretServiceBusCredential);
                serviceEndPoint.Behaviors.Add(serviceRegistrySettings);

                logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Added behaviors");


                host.Description.Endpoints.Add(serviceEndPoint);
                host.Open();
                logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Host opened");

                while (true)
                {
                    Thread.Sleep(10000);
                    logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Working…");
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine("Error starting role " + ex.Message, "Error");
            }
        }
Example #2
0
 public override void Start()
 {
     try
     {
         string           endPoint = "sb://proazure.servicebus.windows.net/sample/log/"; //ConfigurationSettings.AppSettings["EndPoint"];
         string           userName = "******";                                         // ConfigurationSettings.AppSettings["UserName"];
         string           password = "******";                                         //  ConfigurationSettings.AppSettings["Password"];
         ServiceBusLogger logger   = new ServiceBusLogger(endPoint, userName, password);
         logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Role Started");
         while (true)
         {
             Thread.Sleep(1000);
             logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Working…");
         }
     }
     catch (Exception ex)
     {
         RoleManager.WriteToLog("Error", "Error starting role " + ex.Message);
         RoleManager.WriteToLog("Error", "Stack Trace " + ex.StackTrace);
     }
 }
        /*public override void Run()
         * {
         * try
         * {
         *   string issuerName = GetStringConfigurationValue("UserName");
         *   string issuerKey = GetStringConfigurationValue("Password");
         * string demResEndPoint = GetStringConfigurationValue("DemResEndpoint");
         * string logEndPoint = GetStringConfigurationValue("LogEndpoint");
         *
         * ServiceBusLogger logger = new ServiceBusLogger(logEndPoint, issuerName, issuerKey);
         *
         * logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Role Started");
         *
         * Uri uri = new Uri(demResEndPoint);
         * TransportClientEndpointBehavior sharedSecretServiceBusCredential = new TransportClientEndpointBehavior();
         * sharedSecretServiceBusCredential.CredentialType = TransportClientCredentialType.SharedSecret;
         * sharedSecretServiceBusCredential.Credentials.SharedSecret.IssuerName = issuerName;
         * sharedSecretServiceBusCredential.Credentials.SharedSecret.IssuerSecret = issuerKey;
         * host = new ServiceHost(typeof(DemResService), uri);
         * logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Service Host created");
         * ContractDescription contractDescription = ContractDescription.GetContract(typeof(IDemResOperations), typeof(DemResService));
         * ServiceEndpoint serviceEndPoint = new ServiceEndpoint(contractDescription);
         *
         * serviceEndPoint.Address = new EndpointAddress(uri);
         * logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Address created");
         * NetTcpRelayBinding binding = new NetTcpRelayBinding();
         *
         *
         * serviceEndPoint.Binding = binding;
         *
         * logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Binding created");
         *
         * //Set the DiscoveryType to Public and Publish this in the Service Registry
         * ServiceRegistrySettings serviceRegistrySettings = new ServiceRegistrySettings();
         * serviceRegistrySettings.DiscoveryMode = DiscoveryType.Public;
         * serviceRegistrySettings.DisplayName = "Demand-Response Service";
         *
         *
         * serviceEndPoint.Behaviors.Add(sharedSecretServiceBusCredential);
         * serviceEndPoint.Behaviors.Add(serviceRegistrySettings);
         *
         * logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Added behaviors");
         *
         *
         * host.Description.Endpoints.Add(serviceEndPoint);
         * host.Open();
         * logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Host opened");
         *
         * while (true)
         * {
         *
         * Thread.Sleep(10000);
         * logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Working…");
         *
         *
         * }
         * }
         * catch (Exception ex)
         * {
         *
         *   Trace.WriteLine("Error starting role " + ex.Message, "Error");
         *
         * }
         * }*/

        public override void Run()
        {
            try
            {
                string logEndPoint = GetStringConfigurationValue("LogEndpoint");
                string issuerName  = GetStringConfigurationValue("UserName");
                string issuerKey   = GetStringConfigurationValue("Password");
                logger = new ServiceBusLogger(logEndPoint, issuerName, issuerKey);

                logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Role Started");


                host = new ServiceHost(typeof(DemResService));
                logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Service Host created");

                host.Open();
                logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Host opened");

                while (true)
                {
                    Thread.Sleep(10000);
                    logger.Channel.WriteToLog(DateTime.UtcNow, "Worker Role", "Working…");
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine("Error starting role " + ex.Message, "Error");
            }
            finally
            {
                if (logger != null)
                {
                    if (logger.Channel.State != CommunicationState.Closed)
                    {
                        logger.Channel.Close();
                    }
                }
            }
        }
Example #4
0
        protected override void Load(ContainerBuilder builder)
        {
            var myNoSqlClient = builder.CreateNoSqlClient(Program.ReloadedSettings(e => e.MyNoSqlReaderHostPort));

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

            builder
            .RegisterAssetsDictionaryClients(myNoSqlClient);

            builder
            .RegisterSpotChangeBalanceGatewayClient(Program.Settings.ChangeBalanceGatewayGrpcServiceUrl);

            var bitgoClient =
                new BitGoClient(
                    Program.Settings.BitgoAccessTokenMainNet, Program.Settings.BitgoExpressUrlMainNet,
                    Program.Settings.BitgoAccessTokenTestNet, Program.Settings.BitgoExpressUrlTestNet);

            builder
            .RegisterInstance(bitgoClient)
            .As <IBitGoClient>()
            .SingleInstance();

            builder.RegisterBitgoSettingsReader(myNoSqlClient);
            builder.RegisterFeesClients(myNoSqlClient);

            builder.RegisterBitGoSignTransactionClient(Program.Settings.BitgoSignTransactionGrpcServiceUrl);

            ServiceBusLogger = Program.LogFactory.CreateLogger(nameof(MyServiceBusTcpClient));

            var serviceBusClient = builder.RegisterMyServiceBusTcpClient(
                Program.ReloadedSettings(e => e.SpotServiceBusHostPort),
                Program.LogFactory);

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

            builder.RegisterMyServiceBusSubscriberSingle <WithdrawalVerifiedMessage>(serviceBusClient, WithdrawalVerifiedMessage.TopicName, "Bitgo-WithdrawalProcessor-Verification", TopicQueueType.Permanent);

            builder.RegisterSignalBitGoTransferSubscriber(serviceBusClient, "Bitgo-WithdrawalProcessor", TopicQueueType.Permanent);
            builder.RegisterSignalCircleTransferSubscriber(serviceBusClient, "Bitgo-WithdrawalProcessor", TopicQueueType.Permanent);
            builder.RegisterMyServiceBusPublisher <Withdrawal>(serviceBusClient, Withdrawal.TopicName, false);
            builder.RegisterVerificationCodesClient(Program.Settings.VerificationCodesGrpcUrl);
            //builder.RegisterBitgoDepositAddressClient(Program.Settings.BitgoDepositDetectorGrpcServiceUrl, myNoSqlClient);
            builder.RegisterMyServiceBusSubscriberSingle <FireblocksWithdrawalSignal>(serviceBusClient, Topics.FireblocksWithdrawalSignalTopic,
                                                                                      "Bitgo-WithdrawalProcessor",
                                                                                      TopicQueueType.Permanent);

            var factory = new DepositDetectorClientFactory(Program.Settings.BitgoDepositDetectorGrpcServiceUrl);

            builder.RegisterInstance(factory.GetDepositAddressService()).As <IDepositAddressService>();

            builder.RegisterClientWalletsClients(myNoSqlClient, Program.Settings.ClientWalletsGrpcServiceUrl);
            builder.RegisterAssetPaymentSettingsClients(myNoSqlClient);

            builder.RegisterCirclePaymentsClient(Program.Settings.CircleSignerGrpcServiceUrl);
            builder.RegisterCircleSettingsReader(myNoSqlClient);
            //builder.RegisterBlockchainWalletsClient(Program.Settings.BlockchainWalletsGrpcServiceUrl, myNoSqlClient);

            builder.RegisterIndexPricesClient(myNoSqlClient);

            BlockchainWalletsClientFactory blockchainWalletsClientFactory = new BlockchainWalletsClientFactory(Program.Settings.BlockchainWalletsGrpcServiceUrl);
            var walletService = blockchainWalletsClientFactory.GetWalletService();

            builder.RegisterInstance(walletService).As <IWalletService>().SingleInstance();

            builder.RegisterFireblocksSignerClient(Program.Settings.FireblocksSignerGrpcServiceUrl);

            builder.RegisterInstance(new FireblocksWithdrawalNoteService());

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

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

            builder
            .RegisterType <WithdrawalProcessingJob>()
            .AutoActivate()
            .SingleInstance()
            .AsSelf();

            builder
            .RegisterType <CryptoWithdrawalService>()
            .AutoActivate()
            .SingleInstance()
            .AsSelf();
        }