/// <summary>
        /// Get Messages from Service Bus Subscription on the given Topic
        /// </summary>
        /// <returns></returns>
        static async Task GetMessages()
        {
            try
            {
                Console.WriteLine("Polling for new messages");
                HttpClient httpClient = new HttpClient();

                HttpRequestMessage httpRequestMessage = new HttpRequestMessage()
                {
                    RequestUri = new Uri(ServiceBusConfig.resourceUri + $"/subscriptions/{ServiceBusConfig.subscriptionName}/messages/head"),
                    Method     = HttpMethod.Delete
                };

                httpRequestMessage.Headers.Add("Authorization", ServiceBusConfig.GetToken());
                var result = await httpClient.SendAsync(httpRequestMessage);

                var content = (StreamContent)result.Content;
                ServiceBusMessage sbMessage = JsonConvert.DeserializeObject <ServiceBusMessage>(result.Content.ReadAsStringAsync().Result);
                Console.WriteLine(sbMessage.UserProperties.Guid);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
        partial void OnCreating()
        {
            this.azureSettings = InfrastructureSettings.Read("Settings.xml");
            this.azureSettings.ServiceBus.Topics.First(t => t.IsEventBus).Subscriptions.AddRange(
                new[]
            {
                new SubscriptionSettings {
                    Name = "Registration.RegistrationProcessRouter", RequiresSession = true
                },
                new SubscriptionSettings {
                    Name = "Registration.OrderViewModelGenerator", RequiresSession = true
                },
                new SubscriptionSettings {
                    Name = "Registration.PricedOrderViewModelGenerator", RequiresSession = true
                },
                new SubscriptionSettings {
                    Name = "Registration.SeatAssignmentsViewModelGenerator", RequiresSession = true
                },
            });
            this.azureSettings.ServiceBus.Topics.First(t => !t.IsEventBus).Subscriptions.AddRange(
                new[]
            {
                new SubscriptionSettings {
                    Name = "all", RequiresSession = false
                }
            });

            this.busConfig = new ServiceBusConfig(this.azureSettings.ServiceBus);

            busConfig.Initialize();
        }
示例#3
0
 /// <summary>
 /// Configuration constructor
 /// </summary>
 /// <param name="configuration"></param>
 public Config(IConfiguration configuration) : base(configuration)
 {
     _ep  = new EventProcessorConfig(configuration);
     _eh  = new IoTHubEventConfig(configuration);
     _sb  = new ServiceBusConfig(configuration);
     _hub = new IoTHubConfig(configuration);
 }
 private void RegisterEventProcessor <T>(IServiceCollection services, IServiceProvider provider,
                                         ServiceBusConfig busConfig, string subscriptionName, ITextSerializer serializer, ILogger <IProcessor> logger)
     where T : IEventHandler
 {
     services.AddSingleton <IProcessor>(busConfig.CreateEventProcessor(
                                            subscriptionName, provider.GetService <T>(), serializer, logger));
 }
示例#5
0
        public void SetupSubscriptionListener()
        {
            var instanceId     = RoleEnvironment.CurrentRoleInstance.Id;
            var instanceNumber = instanceId.Substring(instanceId.LastIndexOf("_"));
            var environment    = RoleEnvironment.IsEmulated  ? "dev" : "prod";

            var subscriptionName = string.Format("solutionavailable_{0}_{1}", environment, instanceNumber);


            ServiceBusConfig.Setup();
            ServiceBusUtilities.SetupSubscription(subscriptionName);

            Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    var solution = ServiceBusUtilities.SolutionAvailableSubscription.Receive();
                    if (solution != null)
                    {
                        SolutionsHub.BroadcastSolution(solution);
                    }
                    Thread.Sleep(100);
                }
            });
        }
示例#6
0
        /// <summary>
        /// Main Async method to post messages to Service Bus Topic
        /// </summary>
        /// <returns></returns>
        static async Task MainAsync()
        {
            try
            {
                HttpClient httpClient = new HttpClient();
                for (int i = 0; i <= msgCount; i++)
                {
                    HttpRequestMessage httpRequestMessage = new HttpRequestMessage()
                    {
                        RequestUri = new Uri(ServiceBusConfig.resourceUri + "/messages"),
                        Method     = HttpMethod.Post
                    };
                    httpRequestMessage.Headers.Add("Authorization", ServiceBusConfig.GetToken());

                    var msg = BuildServiceBusMessage();
                    msg[0].UserProperties.Guid = Guid.NewGuid().ToString();
                    var sbmessage = JsonConvert.SerializeObject(msg);
                    httpRequestMessage.Content = new StringContent(sbmessage);
                    httpRequestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.microsoft.servicebus.yml");
                    var result = await httpClient.SendAsync(httpRequestMessage);

                    if (result.StatusCode == System.Net.HttpStatusCode.Created)
                    {
                        Console.WriteLine($"sending msg no {i}: {msg[0].UserProperties.Guid}");
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
        partial void OnCreating()
        {
            azureSettings = InfrastructureSettings.Read("Settings.xml");
            busConfig     = new ServiceBusConfig(azureSettings.ServiceBus);

            busConfig.Initialize();
        }
示例#8
0
        public async Task Start()
        {
            var serviceBusConnectionString = _configuration.GetConnectionString("AzureServiceBus");

            _serviceBusConfig = _configuration.GetSection(nameof(ServiceBusConfig)).Get <ServiceBusConfig>();
            var busConfig = _configuration.GetSection(nameof(BusConfig)).Get <BusConfig>();

            if (busConfig != null)
            {
                _logger.LogWarning($"{busConfig.BusType} with ConnectionString {serviceBusConnectionString.ReplaceWithStars(20)} will delay start for {busConfig.BusDelayStartInSec} ");
                await Task.Delay(busConfig.BusDelayStartInSec * 1000);

                _logger.LogWarning($"{busConfig.BusType} connecting...");
            }

            _approvedAdoProjcetMessageReceiverClient = new SubscriptionClient(serviceBusConnectionString, _serviceBusConfig.ApprovedAdoProjectsTopic, _serviceBusConfig.ApprovedAdoProjectsSub);
            _rejectedAdoProjcetMessageReceiverClient = new SubscriptionClient(serviceBusConnectionString, _serviceBusConfig.RejectedAdoProjectsTopic, _serviceBusConfig.RejectedAdoProjectsSub);
            //queueReceiverClient = new QueueClient(serviceBusConnectionString, _serviceBusConfig.QueueNameTest);

            var messageHandlerOptions = new MessageHandlerOptions(OnServiceBusException)
            {
                MaxConcurrentCalls = 5, AutoComplete = false
            };

            _approvedAdoProjcetMessageReceiverClient?.RegisterMessageHandler(OnApprovedReceived, messageHandlerOptions);
            _rejectedAdoProjcetMessageReceiverClient?.RegisterMessageHandler(OnRejectedReceived, messageHandlerOptions);
            //queueReceiverClient?.RegisterMessageHandler(ExecuteQueueMessageProcessing, messageHandlerOptions);
        }
示例#9
0
 /// <summary>
 /// Configuration constructor
 /// </summary>
 /// <param name="configuration"></param>
 public Config(IConfigurationRoot configuration) :
     base(configuration)
 {
     _sb  = new ServiceBusConfig(configuration);
     _hub = new IoTHubConfig(configuration);
     _ai  = new ApplicationInsightsConfig(configuration);
 }
 public AudioUploadingMessageBroker(
     IOptions <ConnectionStringsConfig> connectionStringsConfig,
     IOptions <ServiceBusConfig> serviceBusConfig
     )
 {
     this._connectionStringsConfig = connectionStringsConfig.Value;
     this._serviceBusConfig        = serviceBusConfig.Value;
 }
        public QueueService(ServiceBusConfig serviceBusConfig, IK8sJobService k8sJobService)
        {
            this.queueClient = new QueueClient(serviceBusConfig.ConnectionString,
                                               serviceBusConfig.ExportQueueName);
            k8SJobService = k8sJobService;

            RegisterOnMessageHandlerAndReceiveMessages();
        }
示例#12
0
 public ServiceBus(ServiceBusConfig config)
 {
     IsRunning  = false;
     Config     = config;
     Production = Array.ConvertAll(config.Production, (x) => NamespaceManager.CreateFromConnectionString(x));
     Staging    = Array.ConvertAll(config.Staging, (x) => NamespaceManager.CreateFromConnectionString(x));
     BusQueue.SetMajorCritical(config.Major, config.Critical);
 }
示例#13
0
 /// <summary>
 /// Configuration constructor
 /// </summary>
 /// <param name="configuration"></param>
 public Config(IConfiguration configuration) :
     base(configuration)
 {
     _sb   = new ServiceBusConfig(configuration);
     _hub  = new IoTHubConfig(configuration);
     _id   = new IdentityTokenUpdaterConfig(configuration);
     _sync = new ActivationSyncConfig(configuration);
     _edge = new JobOrchestratorEndpointConfig(configuration);
 }
示例#14
0
        public ServiceBusClient(ServiceBusConfig serviceBusConfig, WriterCosmosDbConfig writerCosmosDbConfig)
        {
            this.writerCosmosDbConfig = writerCosmosDbConfig;
            subscriptionClient        = new SubscriptionClient(serviceBusConfig.ConnectionString, serviceBusConfig.TopicName, serviceBusConfig.SubscriptionName);

            var mongoClient = new MongoClient(writerCosmosDbConfig.ConnectionString);

            cosmosDatabase = mongoClient.GetDatabase(writerCosmosDbConfig.DataBaseId);
        }
示例#15
0
 /// <summary>
 /// Configuration constructor
 /// </summary>
 /// <param name="configuration"></param>
 public Config(IConfigurationRoot configuration) :
     base(configuration)
 {
     _tasks = new TaskProcessorConfig(configuration);
     _ep    = new EventProcessorConfig(configuration);
     _eh    = new IoTHubEventConfig(configuration);
     _hub   = new IoTHubConfig(configuration);
     _sb    = new ServiceBusConfig(configuration);
     _ai    = new ApplicationInsightsConfig(configuration);
 }
示例#16
0
 /// <summary>
 /// Configuration constructor
 /// </summary>
 /// <param name="configuration"></param>
 public Config(IConfiguration configuration) :
     base(configuration)
 {
     _openApi = new OpenApiConfig(configuration);
     _host    = new HostConfig(configuration);
     _auth    = new AuthConfig(configuration);
     _cors    = new CorsConfig(configuration);
     _sb      = new ServiceBusConfig(configuration);
     _sr      = new SignalRServiceConfig(configuration);
 }
示例#17
0
 /// <summary>
 /// Configuration constructor
 /// </summary>
 /// <param name="configuration"></param>
 public Config(IConfiguration configuration) :
     base(configuration)
 {
     _openApi = new OpenApiConfig(configuration);
     _auth    = new AuthConfig(configuration);
     _host    = new HostConfig(configuration);
     _hub     = new IoTHubConfig(configuration);
     _cors    = new CorsConfig(configuration);
     _sb      = new ServiceBusConfig(configuration);
     _cosmos  = new CosmosDbConfig(configuration);
 }
示例#18
0
 /// <summary>
 /// Configuration constructor
 /// </summary>
 /// <param name="configuration"></param>
 public Config(IConfigurationRoot configuration) :
     base(configuration)
 {
     _swagger = new SwaggerConfig(configuration);
     _auth    = new AuthConfig(configuration);
     _hub     = new IoTHubConfig(configuration);
     _cors    = new CorsConfig(configuration);
     _sb      = new ServiceBusConfig(configuration);
     _cosmos  = new CosmosDbConfig(configuration);
     _ai      = new ApplicationInsightsConfig(configuration);
 }
 public AudioUploadingResultListener(
     IOptions <ConnectionStringsConfig> connectionStringsConfig,
     IOptions <ServiceBusConfig> serviceBusConfig,
     IServiceScopeFactory scopeFactory,
     ILogger <AudioUploadingResultListener> logger
     )
 {
     this._connectionStringsConfig = connectionStringsConfig.Value;
     this._serviceBusConfig        = serviceBusConfig.Value;
     this._scopeFactory            = scopeFactory;
     this._logger = logger;
 }
示例#20
0
 /// <summary>
 /// Configuration constructor
 /// </summary>
 /// <param name="configuration"></param>
 public Config(IConfiguration configuration) :
     base(configuration)
 {
     _openApi = new OpenApiConfig(configuration);
     _host    = new WebHostConfig(configuration);
     _cors    = new CorsConfig(configuration);
     _sb      = new ServiceBusConfig(configuration);
     _sr      = new SignalRServiceConfig(configuration);
     _fh      = new ForwardedHeadersConfig(configuration);
     _ep      = new EventProcessorConfig(configuration);
     _eh      = new EventHubConsumerConfig(configuration);
 }
示例#21
0
        public MainWindow()
        {
            InitializeComponent();
            // SBConfig = ServiceBusConfig.CreateConfigs(sbPath);
            StreamingListView.ItemsSource = streamingValues;
            xWS.Content = $"Url  {wsPath}";

            socket = new MyWebSocket(wsPath);
            socket.Start();
            serviceBus     = new ServiceBus(ServiceBusConfig.Create(sbPath));
            streamingProd  = new Streaming(Streaming.Prod);
            streamingStage = new Streaming(Streaming.Stage);
        }
示例#22
0
 /// <summary>
 /// Configuration constructor
 /// </summary>
 /// <param name="configuration"></param>
 public Config(IConfiguration configuration) :
     base(configuration)
 {
     _openApi = new OpenApiConfig(configuration);
     _host    = new WebHostConfig(configuration);
     _hub     = new IoTHubConfig(configuration);
     _cors    = new CorsConfig(configuration);
     _sb      = new ServiceBusConfig(configuration);
     _cosmos  = new CosmosDbConfig(configuration);
     _fh      = new ForwardedHeadersConfig(configuration);
     _cr      = new ContainerRegistryConfig(configuration);
     _lwc     = new LogWorkspaceConfig(configuration);
 }
示例#23
0
 /// <summary>
 /// Configuration constructor
 /// </summary>
 /// <param name="configuration"></param>
 public Config(IConfiguration configuration) :
     base(configuration)
 {
     _openApi = new OpenApiConfig(configuration);
     _auth    = new AuthConfig(configuration);
     _host    = new HostConfig(configuration);
     _hub     = new IoTHubConfig(configuration);
     _cors    = new CorsConfig(configuration);
     _sb      = new ServiceBusConfig(configuration);
     _cosmos  = new CosmosDbConfig(configuration);
     _sr      = new SignalRServiceConfig(configuration);
     _fh      = new ForwardedHeadersConfig(configuration);
 }
示例#24
0
        private static IConfigurationRoot SetConfiguration()
        {
            _serviceBusConfig = new ServiceBusConfig();

            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json")
                          .AddEnvironmentVariables()
                          .Build();

            builder.GetSection("ServiceBusConfig").Bind(_serviceBusConfig);

            return(builder);
        }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            ServiceBusConfig serviceBusConfig = new ServiceBusConfig();

            Configuration.GetSection("ServiceBusConfig").Bind(serviceBusConfig);


            services.AddControllers();
            services.AddSingleton(serviceBusConfig);

            services.AddSingleton <IUserService, UserService>();
            services.AddSingleton <IOrderService, OrderService>();
            services.AddSingleton <IMessagePublisher, MessagePublisher>();
        }
示例#26
0
 /// <summary>
 /// Configuration constructor
 /// </summary>
 /// <param name="configuration"></param>
 internal Config(IConfigurationRoot configuration) :
     base(configuration)
 {
     _vault    = new VaultConfig(configuration);
     _keyVault = new KeyVaultConfig(configuration);
     _cosmos   = new CosmosDbConfig(configuration);
     _swagger  = new SwaggerConfig(configuration);
     _auth     = new AuthConfig(configuration);
     _cors     = new CorsConfig(configuration);
     _sb       = new ServiceBusConfig(configuration);
     _hub      = new IoTHubConfig(configuration);
     _registry = new ApiConfig(configuration);
     _ai       = new ApplicationInsightsConfig(configuration);
 }
示例#27
0
 /// <summary>
 /// Configuration constructor
 /// </summary>
 /// <param name="configuration"></param>
 internal Config(IConfiguration configuration) :
     base(configuration)
 {
     _vault    = new VaultConfig(configuration);
     _keyVault = new KeyVaultConfig(configuration);
     _cosmos   = new CosmosDbConfig(configuration);
     _openApi  = new OpenApiConfig(configuration);
     _host     = new WebHostConfig(configuration);
     _cors     = new CorsConfig(configuration);
     _sb       = new ServiceBusConfig(configuration);
     _hub      = new IoTHubConfig(configuration);
     _registry = new RegistryConfig(configuration);
     _fh       = new ForwardedHeadersConfig(configuration);
 }
示例#28
0
        public static void RegisterComponents(UnityContainer container)
        {
            #region Infrastructures

            string serviceBusSetting = AppDomain.CurrentDomain.BaseDirectory + "InfrastructureSetting.xml";

            MobileOAuthSettings infrastructureSetting = InfrastructureSettings.Read <MobileOAuthSettings>(serviceBusSetting);
            ServiceBusConfig    serviceBusConfig      = new ServiceBusConfig(infrastructureSetting.ServiceBus);
            RedisCacheSetting   redisCacheConfig      = infrastructureSetting.RedisCache;
            serviceBusConfig.Initialize();

            container.RegisterInstance <ITextSerializer>(new JsonTextSerializer());
            container.RegisterInstance <IMetadataProvider>(new StandardMetadataProvider());
            #endregion

            #region Command Bus
            container.RegisterInstance <IMessageSender>(Topics.Commands.Path, new TopicSender(infrastructureSetting.ServiceBus, Topics.Commands.Path));

            container.RegisterInstance <ICommandBus>(
                new CommandBus(
                    container.Resolve <IMessageSender>(Topics.Commands.Path),
                    container.Resolve <IMetadataProvider>(),
                    container.Resolve <ITextSerializer>()
                    ));
            #endregion

            #region Context
            container.RegisterType <OAuthDbContext>(
                new InjectionConstructor("MobileOAuth"));
            #endregion

            #region Cache Context
            container.RegisterType <RedisReadClient>(new ContainerControlledLifetimeManager(), new InjectionConstructor(redisCacheConfig));
            container.RegisterType <RedisWriteClient>(new ContainerControlledLifetimeManager(), new InjectionConstructor(redisCacheConfig));
            #endregion

            container.RegisterInstance <IUserClient>(new UserClient());

            container.RegisterType <IApplicationRepository, ApplicationRepository>();
            container.RegisterType <IAdminUserRepository, AdminUserRepository>();

            container.RegisterType <IAppService, ApplicationService>();
            container.RegisterType <IAdminUserService, AdminUserService>();
            container.RegisterType <IDeviceService, RedisDeviceService>();
            container.RegisterType <IRefreshTokenService, RedisRefreshTokenService>();
            container.RegisterType <IUserService, UserService>();

            GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container);
        }
示例#29
0
 public VmOperationExecuteCommandHandler(
     IConfiguration configuration,
     IApiIdentity apiIdentity,
     IVmSdkService vmSdkService,
     IMessageBus messageBus,
     IVmTicketRepository repository,
     IVmTicketHistoryRepository vmTicketHistoryRepository,
     ILogger <VmOperationExecuteCommandHandler> logger)
 {
     _userId       = apiIdentity.GetUserName();
     _vmSdkService = vmSdkService;
     _messageBus   = messageBus;
     _repository   = repository;
     _vmTicketHistoryRepository = vmTicketHistoryRepository;
     _logger           = logger;
     _serviceBusConfig = configuration.GetSection(nameof(ServiceBusConfig)).Get <ServiceBusConfig>();
 }
示例#30
0
        public void CreateV3ReadModelSubscriptions(ServiceBusSettings serviceBusSettings)
        {
            var commandsTopic = serviceBusSettings.Topics.First(t => !t.IsEventBus);

            serviceBusSettings.Topics.Remove(commandsTopic);

            var eventsTopic = serviceBusSettings.Topics.First();

            eventsTopic.MigrationSupport.Clear();
            var v3Subs = eventsTopic.Subscriptions.Where(s => s.Name.EndsWith("V3")).ToArray();

            eventsTopic.Subscriptions.Clear();
            eventsTopic.Subscriptions.AddRange(v3Subs);

            var config = new ServiceBusConfig(serviceBusSettings);

            config.Initialize();
        }