コード例 #1
0
ファイル: RiskItemServices.cs プロジェクト: soboE2/SEP
        public IEnumerable <RiskItem> GetAllSports()
        {
            var sportRisk = _riskRepository.GetAll().Where(m => m.Name.Equals("Sport")).FirstOrDefault();

            var sports = sportRisk != null?_riskItemRepository.GetAllByRiskId(sportRisk.ID) : Enumerable.Empty <RiskItem>();

            return(sports);
        }
コード例 #2
0
ファイル: PolicyService.cs プロジェクト: AleksBobrov/Homework
        public IPolicy GetPolicy(string nameOfInsuredObject, DateTime effectiveDate)
        {
            var policyId = IdGenerator.ConstructPolicyId(nameOfInsuredObject, effectiveDate);

            var policyModel = _policyRepository.Get(policyId);

            if (policyModel == null)
            {
                throw new NoSuchPolicyException(nameOfInsuredObject,
                                                effectiveDate);
            }

            var policyRisks = _riskRepository
                              .GetAll()
                              .Where(riskModel => riskModel.PolicyId == policyId)
                              .Select(riskModel => new Risk {
                Name = riskModel.Name, YearlyPrice = riskModel.YearlyPrice
            })
                              .ToList();

            decimal premium = _premiumCalculator.CalculatePremiumOfSoldPolicy(nameOfInsuredObject, effectiveDate);

            return(new Policy()
            {
                NameOfInsuredObject = policyModel.NameOfInsuredObject,
                ValidFrom = policyModel.ValidFrom,
                ValidTill = policyModel.ValidTill,
                InsuredRisks = policyRisks,
                Premium = premium
            });
        }
コード例 #3
0
        //Used to calculate premium for Risk already in storage
        public decimal CalculatePremiumOfSoldPolicy(string nameOfInsuredObject, DateTime effectiveDate)
        {
            var     policyId = IdGenerator.ConstructPolicyId(nameOfInsuredObject, effectiveDate);
            decimal premium  = 0.0m;

            var insuredRisks = _riskRepository
                               .GetAll()
                               .Where(riskModel => riskModel.PolicyId == policyId)
                               .ToList();

            foreach (var insuredRisk in insuredRisks)
            {
                premium += Math.Round(insuredRisk.YearlyPrice / 365.0m, 2) *
                           (int)(insuredRisk.ValidTill - insuredRisk.ValidFrom).TotalDays;
            }

            return(Math.Round(premium, 2));
        }
コード例 #4
0
 public IEnumerable <Risk> GetAll()
 {
     return(_risk.GetAll());
 }