Exemple #1
0
        private ILearningDelivery GetLearningDeliveryWithLatestFAMDateFrom(IReadOnlyCollection <ILearningDelivery> learningDeliveries)
        {
            DateTime          latestACTFAMFrom = DateTime.MinValue;
            ILearningDelivery result           = null;

            foreach (var learningDelivery in learningDeliveries)
            {
                if (learningDelivery.LearningDeliveryFAMs != null)
                {
                    ILearningDeliveryFAM ldfamWithLatestDateFrom =
                        _learningDeliveryFAMQueryService.GetLearningDeliveryFAMsForType(learningDelivery.LearningDeliveryFAMs, LearningDeliveryFAMTypeConstants.ACT)
                        .Where(fam => fam.LearnDelFAMDateFromNullable.HasValue)
                        .OrderByDescending(f => f.LearnDelFAMDateFromNullable)
                        .FirstOrDefault();

                    if (ldfamWithLatestDateFrom != null &&
                        ldfamWithLatestDateFrom.LearnDelFAMDateFromNullable.HasValue &&
                        ldfamWithLatestDateFrom.LearnDelFAMDateFromNullable.Value > latestACTFAMFrom)
                    {
                        latestACTFAMFrom = ldfamWithLatestDateFrom.LearnDelFAMDateFromNullable.Value;
                        if (learningDelivery.LearnActEndDateNullable.HasValue)
                        {
                            result = learningDelivery;
                        }
                    }
                }
            }

            return(result);
        }
        public bool LearningDeliveryFAMTypeConditionMet(IEnumerable <ILearningDeliveryFAM> learningDeliveryFAMs, DateTime?learnActEndDate)
        {
            ILearningDeliveryFAM learningDeliveryFAM =
                _learningDeliveryFAMQueryService.GetLearningDeliveryFAMByTypeAndLatestByDateFrom(learningDeliveryFAMs, LearningDeliveryFAMTypeConstants.ACT);

            return(learningDeliveryFAM != null &&
                   (!learningDeliveryFAM.LearnDelFAMDateToNullable.HasValue ||
                    learningDeliveryFAM.LearnDelFAMDateToNullable != learnActEndDate));
        }
        /// <summary>
        /// Raises the validation message.
        /// </summary>
        /// <param name="learnRefNumber">The learn reference number.</param>
        /// <param name="thisMonitor">this monitor.</param>
        public void RaiseValidationMessage(string learnRefNumber, ILearningDeliveryFAM thisMonitor)
        {
            var parameters = Collection.Empty <IErrorMessageParameter>();

            parameters.Add(_messageHandler.BuildErrorMessageParameter(nameof(thisMonitor.LearnDelFAMType), thisMonitor.LearnDelFAMType));
            parameters.Add(_messageHandler.BuildErrorMessageParameter(nameof(thisMonitor.LearnDelFAMCode), thisMonitor.LearnDelFAMCode));

            _messageHandler.Handle(RuleName, learnRefNumber, null, parameters);
        }
Exemple #4
0
        public bool ReportRowTotalApplicable(ILearningDeliveryFAM learningDeliveryFAM, DateTime?censusDate)
        {
            if (!learningDeliveryFAM.LearnDelFAMDateToNullable.HasValue)
            {
                return(learningDeliveryFAM.LearnDelFAMDateFromNullable <= censusDate);
            }

            return(learningDeliveryFAM.LearnDelFAMDateFromNullable.Value <= censusDate &&
                   (learningDeliveryFAM.LearnDelFAMDateToNullable.Value.Add(_timeSpanForActFilter) >= censusDate.Value || learningDeliveryFAM.LearnDelFAMDateToNullable.Value.Month >= censusDate.Value.Month));
        }
        public bool ConditionMet(int ukprn, DateTime learnStartDate, ILearningDeliveryFAM deliveryFam)
        {
            var organisation = _organisationDataService.GetOrganisationFor(ukprn);

            return(!organisation?.ShortTermFundingInitiatives?
                   .Any(stfi => ukprn == stfi.UKPRN &&
                        deliveryFam.LearnDelFAMCode.CaseInsensitiveEquals(stfi.LdmCode) &&
                        learnStartDate >= stfi.EffectiveFrom &&
                        learnStartDate <= (stfi.EffectiveTo ?? DateTime.MaxValue)) ?? true);
        }
        public void HasESFAAdultFundingMeetsExpectation_NullCheck()
        {
            // arrange
            var sut = NewRule();
            ILearningDeliveryFAM learningDeliverFAM = null;

            // act
            var result = sut.HasESFAAdultFunding(learningDeliverFAM);

            // assert
            Assert.False(result);
        }