Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        //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"));
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 6
0
 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();
 }