public static async Task Run(
     [NServiceBusTrigger(EndPoint = "SFA.DAS.Fcast.Jobs.EmployerLevyDataRefreshed")] RefreshEmployerLevyDataCompletedEvent message,
     [Inject] ILevyCompleteTriggerHandler handler,
     [Inject] ILogger <RefreshEmployerLevyDataCompletedEvent> log)
 {
     log.LogInformation($"NServiceBus {nameof(RefreshEmployerLevyDataCompletedEvent)} trigger function executed at: {DateTime.Now}");
     await handler.Handle(message);
 }
        public void SetUp()
        {
            _event = new RefreshEmployerLevyDataCompletedEvent
            {
                AccountId    = 777,
                PeriodMonth  = 9,
                PeriodYear   = "18-19",
                LevyImported = true
            };

            _levyForecastServiceMock = new Mock <ILevyForecastService>();
            _sut = new LevyCompleteTriggerHandler(_levyForecastServiceMock.Object);
        }
        public async Task Then_Message_Will_Be_Handled()
        {
            //Arrange
            var handler = new Mock <ILevyCompleteTriggerHandler>();
            var message = new RefreshEmployerLevyDataCompletedEvent {
                AccountId = 123
            };

            //Act
            await HandleRefreshEmployerLevyDataCompleted.Run(message, handler.Object, Mock.Of <ILogger <RefreshEmployerLevyDataCompletedEvent> >());

            //Assert
            handler.Verify(s => s.Handle(It.Is <RefreshEmployerLevyDataCompletedEvent>(c => c.AccountId.Equals(message.AccountId))), Times.Once);
        }
 public static async Task Run(
     [NServiceBusTrigger(EndPoint = "SFA.DAS.Fcast.Jobs.FundsExpired")] AccountFundsExpiredEvent message,
     [Inject] ILevyCompleteTriggerHandler handler,
     [Inject] ILogger <AccountFundsExpiredEvent> log)
 {
     log.LogInformation($"NServiceBus {nameof(AccountFundsExpiredEvent)} trigger function executed at: {DateTime.Now}");
     var convertedMessage = new RefreshEmployerLevyDataCompletedEvent
     {
         AccountId = message.AccountId,
         Created   = message.Created,
         // Allow forecasting to be triggered for Expiry event
         LevyImported = true
     };
     await handler.Handle(convertedMessage);
 }
        public async Task Handle(RefreshEmployerLevyDataCompletedEvent refreshEmployerLevyDataCompletedEvent)
        {
            if (!refreshEmployerLevyDataCompletedEvent.LevyImported)
            {
                return;
            }

            var periodMonth = refreshEmployerLevyDataCompletedEvent.PeriodMonth != 0
                ? refreshEmployerLevyDataCompletedEvent.PeriodMonth
                : GetTodayPeriodMonth(refreshEmployerLevyDataCompletedEvent.Created);
            var periodYear = !string.IsNullOrEmpty(refreshEmployerLevyDataCompletedEvent.PeriodYear)
                ? refreshEmployerLevyDataCompletedEvent.PeriodYear
                : GetTodayPeriodYear(refreshEmployerLevyDataCompletedEvent.Created);

            await _triggerLevyForecastService.Trigger(periodMonth, periodYear, refreshEmployerLevyDataCompletedEvent.AccountId);
        }
 public Task Handle(RefreshEmployerLevyDataCompletedEvent refreshEmployerLevyDataCompletedEvent)
 {
     return(_handler.Handle(refreshEmployerLevyDataCompletedEvent, null));
 }