public double CalculateOwnerRelatedRisksAndBonuses(InfoForInsurance info, Insurer insurer, double tariffNumber,
                                                           Models.Models.InsurerRiskOrBonus irb, RiskOrBonus currentRisk)
        {
            switch (currentRisk.Nomenclature)
            {
            case "Owner age between 18 and 25":
                if (info.OwnerAge >= 18 && info.OwnerAge <= 25)
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;

            case "Owner age between 26 and 50":
                if (info.OwnerAge >= 26 && info.OwnerAge <= 50)
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;

            case "Owner age over 50":
                if (info.OwnerAge > 50)
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;

            case "New Customer":
                if (info.CarInsurerId != insurer.Id)
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;

            case "Customer has MTPL":
                if (info.MTPLInsurerId == insurer.Id)
                {
                    tariffNumber += irb.TariffNumberChange;
                }

                break;

            case "Customer has car insurance":
                if (info.CarInsurerId == insurer.Id)
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;
            }

            return(tariffNumber);
        }
예제 #2
0
        public double CalculateMVrelatedRisksAndBonuses(InfoForInsurance info, CarModel carModel, double tariffNumber,
                                                        Models.Models.InsurerRiskOrBonus irb, RiskOrBonus currentRisk)
        {
            switch (currentRisk.Nomenclature)
            {
            case "Car model is Special":
                if (carModel.SpecialModel)
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;

            case "Car age less than a year":
                if (info.NewImport)
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;

            case "Car age between 1 and 4 years":
                if (info.CarAge >= 1 && info.CarAge <= 4)
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;

            case "Car age between 5 and 7 years":
                if (info.CarAge >= 5 && info.CarAge <= 7)
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;

            case "Car age between 8 and 10 years":
                if (info.CarAge >= 8 && info.CarAge <= 10)
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;

            case "Car age over 10 years":
                if (info.CarAge > 10)
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;

            case "Car is new import":
                if (info.NewImport)
                {
                    tariffNumber += irb.TariffNumberChange;
                }

                break;

            case "Car has right-side wheel":
                if (info.RightSideWheel)
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;

            case "Car horsepower is over 200":
                if (carModel.Horsepower >= 200)
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;
            }

            return(tariffNumber);
        }
        public double CalculateOtherRisksAndBonuses(NumberOfPayments numberOfPayments, double tariffNumber, Models.Models.InsurerRiskOrBonus irb,
                                                    RiskOrBonus currentRisk, Region region)
        {
            switch (currentRisk.Nomenclature)
            {
            case "One time payment":
                if (numberOfPayments == NumberOfPayments.One)
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;

            case "Car is registered in Sofia":
                if (region.Name == "Sofia")
                {
                    tariffNumber += irb.TariffNumberChange;
                }
                break;
            }

            return(tariffNumber);
        }