public ExpiredFundsService(IExpiredFunds expiredFunds, ILevyDataSession levyDataSession, ITelemetry telemetry, IEmployerPaymentDataSession employerPaymentDataSession) { _expiredFunds = expiredFunds ?? throw new ArgumentNullException(nameof(expiredFunds)); _levyDataSession = levyDataSession ?? throw new ArgumentNullException(nameof(levyDataSession)); _telemetry = telemetry ?? throw new ArgumentNullException(nameof(telemetry)); _employerPaymentDataSession = employerPaymentDataSession; }
public static IDictionary <CalendarPeriod, decimal> GetExpiredFunds(this IExpiredFunds expiredFundsService, IDictionary <CalendarPeriod, decimal> fundsIn, IDictionary <CalendarPeriod, decimal> fundsOut, IDictionary <CalendarPeriod, decimal> expired, int expiryPeriod, DateTime today) { var currentCalendarPeriod = new CalendarPeriod(today.Year, today.Month); var expiringFunds = expiredFundsService.GetExpiringFunds(fundsIn, fundsOut, expired, expiryPeriod); var expiredFunds = expiringFunds .Where(ef => ef.Key <= currentCalendarPeriod && ef.Value >= 0 && !expired.Any(e => e.Key == ef.Key && e.Value == ef.Value)) .ToDictionary(e => e.Key, e => e.Value); return(expiredFunds); }
public ExpireAccountFundsCommandHandler( ICurrentDateTime currentDateTime, ILevyFundsInRepository levyFundsInRepository, IPaymentFundsOutRepository paymentFundsOutRepository, IExpiredFunds expiredFunds, IExpiredFundsRepository expiredFundsRepository, ILog logger, EmployerFinanceConfiguration configuration) { _currentDateTime = currentDateTime; _levyFundsInRepository = levyFundsInRepository; _paymentFundsOutRepository = paymentFundsOutRepository; _expiredFunds = expiredFunds; _expiredFundsRepository = expiredFundsRepository; _logger = logger; _configuration = configuration; }