예제 #1
0
        static async Task ProcessSeasonMessageAsync(IBusEvent message, CancellationToken c)
        {
            var payload = Encoding.UTF8.GetString(message.Body);

            _logger.LogDebug($"Received message: Body:{payload}");

            dynamic payloadvalues = JsonConvert.DeserializeObject <ExpandoObject>(payload);
            var     startdate     = new DateTime(Convert.ToInt32(payloadvalues.SeasonName.Split('-')[0]), 8, 1);
            var     enddate       = new DateTime(Convert.ToInt32(payloadvalues.SeasonName.Split('-')[0]) + 1, 5, 31);
            var     pdate         = startdate;

            while (pdate <= enddate)
            {
                dynamic jsonpayload = new ExpandoObject();
                jsonpayload.TournamentKey = payloadvalues.TournamentKey;
                jsonpayload.SeasonKey     = payloadvalues.SeasonKey;
                jsonpayload.StageKey      = payloadvalues.StageKey;
                jsonpayload.RegionKey     = payloadvalues.RegionKey;
                jsonpayload.CountryKey    = payloadvalues.CountryKey;
                jsonpayload.SeasonName    = payloadvalues.SeasonName;
                jsonpayload.SeasonPeriod  = pdate;
                var buspayload = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(jsonpayload));
                await _newseasonperiodBus.SendEvent(new BusEventBase(buspayload));

                pdate = pdate.AddDays(7);
            }
            await _newseasonBus.CompleteEvent(message.LockToken);
        }
예제 #2
0
            public void Deliver(IBusEvent busEvent)
            {
                if (!(busEvent is TBusEvent))
                {
                    throw new ArgumentException("event is not the correct type");
                }

                m_deliveryAction.Invoke(busEvent as TBusEvent);
            }
예제 #3
0
        protected override async Task When()
        {
            var events = new IBusEvent[] { new FooEvent(), new BarEvent(), new BazEvent() };

            foreach (var e in events)
            {
                await Subject.Publish(e);
            }
        }
예제 #4
0
            public bool ShouldAttemptDelivery(IBusEvent busEvent)
            {
                if (!(busEvent is TBusEvent))
                {
                    return(false);
                }

                return(m_eventFilter.Invoke(busEvent as TBusEvent));
            }
예제 #5
0
        public override async Task SendMessages(IBus bus, Func <bool> shouldKeepSending)
        {
            while (shouldKeepSending())
            {
                var messages = new IBusEvent[] { new FooEvent(), new BarEvent(), new BazEvent(), new QuxEvent() };
                await bus.PublishAll(messages);

                IncrementExpectedMessageCount(8);
            }
        }
        public override async Task SendMessages(IBus bus, Func<bool> shouldKeepSending)
        {
            while (shouldKeepSending())
            {
                var messages = new IBusEvent[] {new FooEvent(), new BarEvent(), new BazEvent(), new QuxEvent()};
                await bus.PublishAll(messages);

                IncrementExpectedMessageCount(8);
            }
        }
예제 #7
0
            public void Deliver(IBusEvent busEvent)
            {
                if (!(busEvent is TBusEvent))
                {
                    throw new ArgumentException("event is not the correct type");
                }


                if (!m_deliveryAction.IsAlive)
                {
                    return;
                }


                ((Action <TBusEvent>)m_deliveryAction.Target).Invoke(busEvent as TBusEvent);
            }
        public static async Task ProcessMessagesAsync(IBusEvent message, CancellationToken c)
        {
            var payload = Encoding.UTF8.GetString(message.Body);

            _logger.LogDebug($"Received message: Body:{payload}");

            dynamic payloadvalues = JsonConvert.DeserializeObject <ExpandoObject>(payload);

            _harvester.TournamentKey = payloadvalues.TournamentKey;
            _harvester.SeasonKey     = payloadvalues.SeasonKey;
            _harvester.StageKey      = payloadvalues.StageKey;
            _harvester.RegionKey     = payloadvalues.RegionKey;
            _harvester.CountryKey    = payloadvalues.CountryKey;
            await _harvester.Execute();

            await _newseasonBus.CompleteEvent(message.LockToken);
        }
예제 #9
0
        static async Task ProcessFixtureMessageAsync(IBusEvent message, CancellationToken c)
        {
            var payload = Encoding.UTF8.GetString(message.Body);

            _logger.LogDebug($"Received message: Body:{payload}");

            dynamic payloadvalues = JsonConvert.DeserializeObject <ExpandoObject>(payload);

            _harvester.FixtureKey    = payloadvalues.FixtureKey;
            _harvester.RegionKey     = payloadvalues.RegionKey;
            _harvester.TournamentKey = payloadvalues.TournamentKey;
            _harvester.CookieString  = await CookieInitialiser.GetCookieFromRootDirectives();

            await _harvester.Execute();

            await _newfixtureBus.CompleteEvent(message.LockToken);
        }
예제 #10
0
            public bool ShouldAttemptDelivery(IBusEvent busEvent)
            {
                if (!(busEvent is TBusEvent))
                {
                    return(false);
                }

                if (!m_deliveryAction.IsAlive)
                {
                    return(false);
                }

                if (!m_eventFilter.IsAlive)
                {
                    return(false);
                }

                return(((Func <TBusEvent, bool>)m_eventFilter.Target).Invoke(busEvent as TBusEvent));
            }
예제 #11
0
        static async Task ProcessSeasonPeriodMessageAsync(IBusEvent message, CancellationToken c)
        {
            var payload = Encoding.UTF8.GetString(message.Body);

            _logger.LogDebug($"Received message: Body:{payload}");

            dynamic payloadvalues = JsonConvert.DeserializeObject <ExpandoObject>(payload);
            var     startyear     = Convert.ToInt32(payloadvalues.SeasonName.Split('-')[0]);

            _harvester.TournamentKey = payloadvalues.TournamentKey;
            _harvester.SeasonKey     = payloadvalues.SeasonKey;
            _harvester.StageKey      = payloadvalues.StageKey;
            _harvester.RegionKey     = payloadvalues.RegionKey;
            _harvester.CountryKey    = payloadvalues.CountryKey;
            _harvester.RequestPeriod = payloadvalues.SeasonPeriod;
            _harvester.CookieString  = await CookieInitialiser.GetCookieFromRootDirectives();

            await _harvester.Execute();

            await _newseasonperiodBus.CompleteEvent(message.LockToken);
        }
예제 #12
0
 public void Deliver(IBusEvent busEvent, IBusEventSubscription subscription)
 {
     subscription.Deliver(busEvent);
 }
 public abstract Task SendEvent(IBusEvent message);
 public override async Task SendEvent(IBusEvent message)
 {
     var msg = new Message(message.Body);
     await _topicClient.SendAsync(msg);
 }
예제 #15
0
 public Task Handle(IBusEvent <TEvent> notification, CancellationToken cancellationToken)
 {
     _bus.Publish(_options.Value.Exchange, _options.Value.RoutingKey, notification);
     return(Task.CompletedTask);
 }
예제 #16
0
 public override async Task SendEvent(IBusEvent message)
 {
     var msg = new BusEventBase(message.Body);
     await _busClient.PublishAsync(msg, Guid.NewGuid(), cfg => cfg
                                   .WithRoutingKey(QueueName));
 }
 protected override async Task When()
 {
     var events = new IBusEvent[] { new FooEvent(), new BarEvent(), new BazEvent() };
     await Subject.PublishAll(events);
 }