public static CoverDto AssembleCoverDto(PolicyCover policyCover) { return(new CoverDto { Code = policyCover.Cover.Code, CoverFrom = policyCover.CoverPeriod.ValidFrom, CoverTo = policyCover.CoverPeriod.ValidTo, PremiumAmount = policyCover.Amount.Amount }); }
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 CoverageExtendedPolicyVersionCreated ( int versionNumber, int baseVersionNumber, ValidityPeriod versionPeriod, PolicyCover newCover ) { VersionNumber = versionNumber; BaseVersionNumber = baseVersionNumber; VersionFrom = versionPeriod.ValidFrom; VersionTo = versionPeriod.ValidTo; NewCover = new PolicyCoverData ( newCover.CoverCode, newCover.CoverPeriod.ValidFrom, newCover.CoverPeriod.ValidTo, newCover.Amount, newCover.Price.Price, newCover.Price.PricePeriod ); }