public PolicyCover CreatePolicyCover(OfferCover offerCover, PolicyValidityPeriod coverPeriod) { return(new PolicyCover { Code = offerCover.Code, Premium = offerCover.Price, PolicyValidityPeriod = coverPeriod }); }
public PolicyCover PolicyCoverEndOn(PolicyCover policyCover, DateTime endDate) { var originalDaysCovered = GetDays(policyCover.PolicyValidityPeriod.PolicyFrom, policyCover.PolicyValidityPeriod.PolicyTo); PolicyValidityPeriod policyValidityPeriod = PolicyValidityPeriodEndOn(policyCover.PolicyValidityPeriod, endDate); var daysNotUsed = originalDaysCovered - GetDays(policyValidityPeriod.PolicyFrom, policyValidityPeriod.PolicyTo); var premium = decimal.Round ( policyCover.Premium - (policyCover.Premium * decimal.Divide(daysNotUsed, originalDaysCovered)) , 2 ); return(new PolicyCover { Code = policyCover.Code, Premium = premium, PolicyValidityPeriod = PolicyValidityPeriodEndOn(policyCover.PolicyValidityPeriod, endDate) }); }
public PolicyValidityPeriod PolicyValidityPeriodEndOn(PolicyValidityPeriod policyValidityPeriod, DateTime endDate) { return(new PolicyValidityPeriod(policyValidityPeriod.PolicyFrom, endDate)); }