private async Task PublishInstance <T>(T instance) where T : class { var bus = ServiceBusProvider.GetRabbitMqPublisherBus(_config.RabbitMqUri); var busHandler = await bus.StartAsync(); await bus.Publish <T>(instance); await busHandler.StopAsync(); }
//publish the message to the queue private async Task PublishInstance <T>(T instance) where T : class { //TODO change this to ServiceBusProvider.GetAzureBus(string hostUri, string accessKeyname, string accessKey) to use with azure service bus var bus = ServiceBusProvider.GetRabbitMqPublisherBus(_config.RabbitMqUri); var busHandler = await bus.StartAsync(); await bus.Publish(instance); await busHandler.StopAsync(); }
public ValidatorRegistry() { Scan(scan => { scan.AssembliesFromApplicationBaseDirectory(); scan.SingleImplementationsOfInterface(); }); var provider = new ServiceBusProvider(); For <IBusControl>() .Use(ctx => provider.GetBusWith <PersonValidationRequestedConsumer>(ctx, "demo-scattergather-eyes")); }
public async Task PublishKeyMap(Dictionary <string, Identifiers> identifiers) { var bus = ServiceBusProvider.GetRabbitMqPublisherBus(_config.RabbitMqUri); var busHandler = await bus.StartAsync(); await bus.Publish <IStandardIdentifierMap>(new StandardIdentifierMap() { InstanceMap = identifiers, MessageOrigin = GetMessageOrigin() }); await busHandler.StopAsync(); }
//public static void Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, ILogger logger) //{ // RunAsync(logger).GetAwaiter().GetResult(); // return; //} public static async Task RunAsync(ILogger logger) { var currentTime = DateTime.Now; logger.LogInformation($"Sql DB Publisher Function has started at {currentTime}"); DbAdapter ff = new DbAdapter(dataBaseConnectionString.ConnectionString, logger); IDataDestinationProvider dataDestination = new ServiceBusProvider(); var dbEntities = ff.GetItems(sourceDataTable); if (ConfigurationManager.AppSettings["Update"] != null) { bool.TryParse(ConfigurationManager.AppSettings["Update"], out update); } if (dbEntities.Any()) { bool update = (currentTime.Hour == 0); logger.LogInformation($"Starting iterating over Faults, update state is {update}."); foreach (var sourceItem in dbEntities) { var message = new InstanceCreateMessage(dynamicsEntityName, dynamicsEntityToken, sourceItem, update) { MissingMappingField = missingMappingField }; try { await dataDestination.PostDataAsync <InstanceCreateMessage>(message, new string[] { serviceBusConnectionString, "", dynamicsInstanceCreateQueue, "" }); } catch (Exception ex) { logger.LogError(ex.Message); } } logger.LogInformation("Iteration over Faults is completed!"); } return; }
public async Task StartConsumerAsync() { Debug.WriteLine("Starting Jira Consumer..."); _bus = ServiceBusProvider.GetRabbitMqConsumerBus(this, _configSettings.RabbitMqUri, _configSettings.SystemName, MachineInfo.GetMacAddress()); await _bus.StartAsync(); }
/// <summary> /// Check the connection, topic and subscriber. Create the topic / subscriber if needed (not exist yet). /// Subscriber name pattern: SC9_MC (market code). /// Note: we're checking the filter as well /// </summary> /// <param name="endpoint"></param> /// <param name="context"></param> /// <returns></returns> protected override ITroubleshooterResult Troubleshoot(Endpoint endpoint, TroubleshooterContext context) { // data validation if (endpoint == null) { return(TroubleshooterResult.FailResult("The endpoint is null.")); } var settings = endpoint.GetPlugin <ServiceBusSettings>(); if (settings == null) { return(TroubleshooterResult.FailResult("The endpoint is missing the ServiceBusSettings plugin.")); } var result = new TroubleshooterResult(); bool wasWrong = false; if (string.IsNullOrWhiteSpace(settings.ConnectionString)) { wasWrong = true; result.Data.Add("ConnectionString", "There is no Connection String in the endpoint configuration."); } if (string.IsNullOrWhiteSpace(settings.Topic)) { wasWrong = true; result.Data.Add("Topic", "There is no Topic in the endpoint configuration."); } if (string.IsNullOrWhiteSpace(settings.Market)) { wasWrong = true; result.Data.Add("Market", "There is no Market in the endpoint configuration."); } if (wasWrong) { result.Success = false; result.Message = "Wrong configuration."; return(result); } // filter preparation: try { var serviceBusService = new ServiceBusService(); var subscriptionName = serviceBusService.GetSubscriptionName(settings.Market, settings.Sender); var filter = serviceBusService.GetFilter(settings.Market, settings.Sender); var ruleName = serviceBusService.GetRuleName(); // test the connection to selected bus var serviceBus = new ServiceBusProvider(settings.ConnectionString); // check the topic existence if (!serviceBus.TopicExist(settings.Topic)) { // try to create one try { serviceBus.CreateTopic(settings.Topic); result.Data.Add("Topic", $"The '{settings.Topic}' topic has been created."); } catch (Exception exception) { return(TroubleshooterResult.FailResult($"Unable to create the '{settings.Topic}' topic.", exception)); } } else { result.Data.Add("Topic", $"The '{settings.Topic}' topic already exist."); } // check the subscription existence if (!serviceBus.SubscribtionExist(settings.Topic, subscriptionName)) { // try to create one try { serviceBus.CreateSubscribtion(settings.Topic, subscriptionName, ruleName, filter); result.Data.Add("Subscription", $"The '{subscriptionName}' subscription has been created."); } catch (Exception exception) { return(TroubleshooterResult.FailResult( $"Unable to create the '{subscriptionName}' subscription.", exception)); } } else { result.Data.Add("Subscription", $"The '{subscriptionName}' subscription already exist."); } // check the filter try { serviceBus.CheckFilter(settings.Topic, subscriptionName, ruleName, filter); result.Data.Add("Filter", "The filter has been checked successfully."); } catch (Exception exception) { return(TroubleshooterResult.FailResult($"Unable to check filter for '{subscriptionName}' subscription: {exception.Message}", exception)); } } catch (Exception e) { return(TroubleshooterResult.FailResult($"Something is wrong with ServiceBus: {e.Message}", e)); } result.Success = true; result.Message = "The Service Bus endpoint is OK."; return(result); }
public async Task StartConsumerAsync() { Debug.WriteLine("Starting EasyAccessConsumer..."); _bus = ServiceBusProvider.GetRabbitMqConsumerBus(this, "rabbitmq://localhost", "EasyAccess", MachineInfo.GetMacAddress()); await _bus.StartAsync(); }