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); }
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); }