Пример #1
0
        private string GetLegalEntityName(string ruleName, DasApprenticeshipInfo dasApprenticeshipInfo)
        {
            if (_rulesWithBlankLegalEntityValues.Any(x => x.CaseInsensitiveEquals(ruleName)))
            {
                return(string.Empty);
            }

            return(dasApprenticeshipInfo?.LegalEntityName ?? string.Empty);
        }
Пример #2
0
        private string GetApprenticeshipServiceValue(string ruleName, DasApprenticeshipInfo dasApprenticeshipInfo)
        {
            if (_rulesWithBlankApprenticeshipValues.Any(x => x.CaseInsensitiveEquals(ruleName)))
            {
                return(string.Empty);
            }

            if (ruleName.CaseInsensitiveEquals(DataLockValidationErrorIdConstants.DLOCK_01))
            {
                return(dasApprenticeshipInfo?.UkPrn.ToString());
            }

            if (ruleName.CaseInsensitiveEquals(DataLockValidationErrorIdConstants.DLOCK_03))
            {
                return(dasApprenticeshipInfo?.StandardCode?.ToString());
            }

            if (ruleName.CaseInsensitiveEquals(DataLockValidationErrorIdConstants.DLOCK_04))
            {
                return(dasApprenticeshipInfo?.FrameworkCode?.ToString());
            }

            if (ruleName.CaseInsensitiveEquals(DataLockValidationErrorIdConstants.DLOCK_05))
            {
                return(dasApprenticeshipInfo?.ProgrammeType?.ToString());
            }

            if (ruleName.CaseInsensitiveEquals(DataLockValidationErrorIdConstants.DLOCK_06))
            {
                return(dasApprenticeshipInfo?.PathwayCode?.ToString());
            }

            if (ruleName.CaseInsensitiveEquals(DataLockValidationErrorIdConstants.DLOCK_07))
            {
                return(dasApprenticeshipInfo?.Cost.ToString(CultureInfo.InvariantCulture));
            }

            if (ruleName.CaseInsensitiveEquals(DataLockValidationErrorIdConstants.DLOCK_10))
            {
                return(dasApprenticeshipInfo?.WithdrawnOnDate?.ToString("dd/MM/yyyy"));
            }

            if (ruleName.CaseInsensitiveEquals(DataLockValidationErrorIdConstants.DLOCK_12))
            {
                return(dasApprenticeshipInfo?.PausedOnDate?.ToString("dd/MM/yyyy"));
            }

            return(string.Empty);
        }
Пример #3
0
        public IEnumerable <DataMatchModel> BuildExternalModels(
            ICollection <DataMatchLearner> dataMatchLearners,
            ICollection <AECApprenticeshipPriceEpisodeInfo> priceEpisodes,
            ICollection <DataLockValidationError> dataLockValidationErrors,
            ICollection <DasApprenticeshipInfo> dasApprenticeshipInfos,
            long jobId)
        {
            List <DataMatchModel> dataMatchModels = new List <DataMatchModel>();

            foreach (var dataLockValidationError in dataLockValidationErrors)
            {
                DataMatchLearner learner = dataMatchLearners.SingleOrDefault(
                    x => x.LearnRefNumber.CaseInsensitiveEquals(dataLockValidationError.LearnerReferenceNumber) &&
                    x.DataMatchLearningDeliveries.Any(ld => ld.AimSeqNumber == dataLockValidationError.AimSeqNumber));

                if (learner == null)
                {
                    continue;
                }

                AECApprenticeshipPriceEpisodeInfo matchedRulebaseInfo = priceEpisodes.LastOrDefault(x =>
                                                                                                    x.LearnRefNumber.CaseInsensitiveEquals(dataLockValidationError.LearnerReferenceNumber));

                DasApprenticeshipInfo matchedDasPriceInfo = dasApprenticeshipInfos.FirstOrDefault(x => x.LearnerUln == dataLockValidationError.LearnerUln);

                string ruleName = PopulateRuleName(dataLockValidationError.RuleId);

                DataMatchModel dataMatchModel = new DataMatchModel
                {
                    LearnRefNumber             = dataLockValidationError.LearnerReferenceNumber,
                    Uln                        = learner.Uln,
                    AimSeqNumber               = dataLockValidationError.AimSeqNumber,
                    RuleName                   = ruleName,
                    Description                = _dataLockValidationMessageService.ErrorMessageForRule(ruleName),
                    ILRValue                   = GetILRValue(ruleName, learner, dataLockValidationError.AimSeqNumber, jobId),
                    ApprenticeshipServiceValue = GetApprenticeshipServiceValue(ruleName, matchedDasPriceInfo),
                    PriceEpisodeStartDate      = matchedRulebaseInfo?.EpisodeStartDate?.ToString("dd/MM/yyyy"),
                    PriceEpisodeActualEndDate  = matchedRulebaseInfo?.PriceEpisodeActualEndDate?.ToString("dd/MM/yyyy"),
                    PriceEpisodeIdentifier     = matchedRulebaseInfo?.PriceEpisodeAgreeId,
                    LegalEntityName            = GetLegalEntityName(ruleName, matchedDasPriceInfo),
                };

                dataMatchModels.Add(dataMatchModel);
            }

            return(dataMatchModels);
        }