public override Period Calculate(DateTime caseServiceDate, PolicyVersion policyVersion)
        {
            if (!policyVersion.CoversDate(caseServiceDate))
            {
                return(Period.Forever());
            }

            var period = Period.Between
                         (
                policyVersion.PolicyFrom,
                policyVersion.PolicyFrom.AddYears(1).AddDays(-1)
                         );

            while (!period.Contains(caseServiceDate))
            {
                period = Period.Between
                         (
                    period.From.AddYears(1),
                    period.From.AddYears(2).AddDays(-1)
                         );
            }

            return(period);
        }
 public abstract Period Calculate(DateTime caseServiceDate, PolicyVersion policyVersion);
 public override Period Calculate(DateTime caseServiceDate, PolicyVersion policyVersion)
 {
     return(Period.Forever());
 }
 public override Period Calculate(DateTime caseServiceDate, PolicyVersion policyVersion)
 {
     return(Period.Yearly(caseServiceDate.Year));
 }
Example #5
0
 public LimitsPolicy(PolicyVersion policyVersion, ILimitConsumptionContainerRepository limitConsumptionContainers)
 {
     _policyVersion = policyVersion;
     _limitConsumptionContainers = limitConsumptionContainers;
 }
 public CoverageCheckPolicy(PolicyVersion policyAtServiceDate)
 {
     this.policyAtServiceDate = policyAtServiceDate;
 }
 public CoPaymentPolicy(PolicyVersion policyAtServiceDate)
 {
     this.policyAtServiceDate = policyAtServiceDate;
 }