Example #1
0
 private LimitConsumptionContainer FindPerCaseConsumptionContainerForService(CaseServiceCostSplit caseService)
 {
     return(_containers.OfType <CaseConsumptionContainerForService>()
            .FirstOrDefault(cs =>
                            cs.PolicyId == caseService.PolicyId &&
                            cs.ServiceCode == caseService.ServiceCode &&
                            cs.CaseNumber == caseService.CaseNumber));
 }
 private LimitConsumptionContainer CreatePerPolicyContainerForService(CaseServiceCostSplit caseService, Period period)
 {
     return(new SharedConsumptionContainerForService
            (
                caseService.PolicyId,
                caseService.ServiceCode,
                period
            ));
 }
Example #3
0
 private LimitConsumptionContainer FindPerPolicyContainerForService(CaseServiceCostSplit caseService,
                                                                    Period period)
 {
     return(_containers.OfType <SharedConsumptionContainerForService>()
            .FirstOrDefault(cs =>
                            cs.PolicyId == caseService.PolicyId &&
                            cs.ServiceCode == caseService.ServiceCode &&
                            cs.Period.From.Date == period.From.Date &&
                            cs.Period.To.Date == period.To.Date));
 }
 private LimitConsumptionContainer CreatePerInsuredContainerForService(CaseServiceCostSplit caseService, Period period)
 {
     return(new IndividualInsuredConsumptionContainerForService
            (
                caseService.PolicyId,
                caseService.ServiceCode,
                caseService.InsuredId,
                period
            ));
 }
 private LimitConsumptionContainer FindPerInsuredContainerForService(CaseServiceCostSplit caseService,
                                                                     Period period)
 {
     return(_dbContext.LimitConsumptionContainers.OfType <IndividualInsuredConsumptionContainerForService>()
            .FirstOrDefault(cs =>
                            cs.PolicyId == caseService.PolicyId &&
                            cs.ServiceCode == caseService.ServiceCode &&
                            cs.InsuredId == caseService.InsuredId &&
                            cs.Period.From.Date == period.From.Date &&
                            cs.Period.To.Date == period.To.Date));
 }
 public static CaseServiceCostSplitResult For(CaseServiceCostSplit caseService)
 {
     return(new CaseServiceCostSplitResult
     {
         Date = caseService.Date,
         ServiceCode = caseService.ServiceCode,
         Price = caseService.Price,
         InsuredCost = caseService.InsuredCost,
         TuCost = caseService.TuCost,
         TotalCost = caseService.TotalCost,
         AmountLimitConsumption = caseService.AmountLimitConsumption,
         QtLimitConsumption = caseService.QtLimitConsumption
     });
 }
Example #7
0
 public LimitConsumptionContainer GetLimitConsumptionContainer(CaseServiceCostSplit caseService, Limit limit, Period period)
 {
     if (limit.LimitPeriod is PerCaseLimitPeriod)
     {
         return(FindPerCaseConsumptionContainerForService(caseService));
     }
     else if (limit.Shared)
     {
         return(FindPerPolicyContainerForService(caseService, period));
     }
     else
     {
         return(FindPerInsuredContainerForService(caseService, period));
     }
 }
        public LimitConsumptionContainer Create(CaseServiceCostSplit caseService, Limit limit,
                                                Period period)
        {
            if (limit.LimitPeriod is PerCaseLimitPeriod)
            {
                return(CreatePerCaseConsumptionContainerForService(caseService));
            }

            if (limit.Shared)
            {
                return(CreatePerPolicyContainerForService(caseService, period));
            }

            return(CreatePerInsuredContainerForService(caseService, period));
        }
 public override LimitCalculation Calculate(CaseServiceCostSplit costSplit,
                                            (Money, int) currentLimitConsumptionContainer)
 private LimitConsumptionContainer CreatePerCaseConsumptionContainerForService(CaseServiceCostSplit caseService)
 {
     return(new CaseConsumptionContainerForService
            (
                caseService.PolicyId,
                caseService.ServiceCode,
                caseService.CaseNumber
            ));
 }