public static IEnumerable <ResultPack> EvaluateConcept(ConfigBase evalConfig, Period evalPeriod, IPeriodProfile evalProfile, Result <MasterItem.EvaluateSource, string> prepValues) { ITaxingProfile conceptProfile = evalProfile.Taxing(); if (conceptProfile == null) { return(EvaluateUtils.DecoratedError(CONCEPT_DESCRIPTION_ERROR_FORMAT, CONCEPT_PROFILE_NULL_TEXT)); } IHealthProfile healthsProfile = evalProfile.Health(); if (healthsProfile == null) { return(EvaluateUtils.DecoratedError(CONCEPT_DESCRIPTION_ERROR_FORMAT, HEALTHS_PROFILE_NULL_TEXT)); } MasterItem.EvaluateSource conceptValues = prepValues.Value; // EVALUATION TAmountDec startedBasisAmount = conceptProfile.TaxableIncomesAdvanceTaxingMode(evalPeriod, conceptValues.GeneralIncome, conceptValues.ExcludeIncome, conceptValues.LolevelIncome, conceptValues.TaskAgrIncome, conceptValues.PartnerIncome); TAmountDec compoundPercFactor = healthsProfile.FactorCompound(); TAmountDec roundedBasisAmount = conceptProfile.DecRoundUp(startedBasisAmount); TAmountDec cutdownBasisAmount = conceptProfile.TaxablePartialAdvanceHealth(evalPeriod, roundedBasisAmount, conceptValues.ExcludeIncome); TAmountDec cutdownAboveAmount = conceptProfile.CutDownPartialAdvanceHealth(evalPeriod, roundedBasisAmount, conceptValues.ExcludeIncome); TAmountDec finaledBasisAmount = conceptProfile.EployerPartialAdvanceHealth(evalPeriod, cutdownBasisAmount, compoundPercFactor); // EVALUATION IArticleResult conceptResult = new ArticleGeneralResult(evalConfig); // SET RESULT VALUES conceptResult.AddMoneyInsuranceBasisValue(startedBasisAmount, roundedBasisAmount, cutdownBasisAmount, cutdownAboveAmount, finaledBasisAmount); // SET RESULT VALUES return(EvaluateUtils.Results(conceptResult)); }