示例#1
0
 public Offer(
     String productCode,
     DateTime policyFrom,
     DateTime policyTo,
     PolicyHolder policyHolder,
     Price price)
 {
     Id                   = null;
     Number               = Guid.NewGuid().ToString();
     ProductCode          = productCode;
     PolicyValidityPeriod = ValidityPeriod.Between(policyFrom, policyTo);
     PolicyHolder         = policyHolder;
     covers               = price.CoverPrices.Select(c => new Cover(c.Key, c.Value)).ToList();
     Status               = OfferStatus.New;
     CreateionDate        = SysTime.CurrentTime;
     TotalPrice           = price.CoverPrices.Sum(c => c.Value);
 }
        public virtual PolicyVersion EndOn(DateTime endDate)
        {
            var endedCovers = this.covers.Select(c => c.EndOn(endDate)).ToList();

            var termVersion = new PolicyVersion
            {
                Policy                = this.Policy,
                VersionNumber         = this.Policy.NextVersionNumber(),
                PolicyHolder          = new PolicyHolder(PolicyHolder.FirstName, PolicyHolder.LastName, PolicyHolder.Pesel),
                CoverPeriod           = CoverPeriod.EndOn(endDate),
                VersionValidityPeriod = ValidityPeriod.Between(endDate.AddDays(1), VersionValidityPeriod.ValidTo),
                covers                = endedCovers,
                TotalPremiumAmount    = endedCovers.Sum(c => c.Premium)
            };

            return(termVersion);
        }
示例#3
0
 public PolicyCover(Cover cover, ValidityPeriod coverPeriod)
 {
     Code        = cover.Code;
     Premium     = cover.Price;
     CoverPeriod = coverPeriod;
 }