예제 #1
0
        public double Calculate(UserForCalculationDto userForCalculationDto)
        {
            try{
                double            iRiskFactor;
                double            iSumInsured;
                PremiumCalculator userPremium;


                DateTime dtDOB = Convert.ToDateTime(userForCalculationDto.DateofBirth);
                TimeSpan tsAge = DateTime.Today - dtDOB;
                int      iAge  = Convert.ToInt32((tsAge.Days) / 365);

                string sSelectedOccupation = userForCalculationDto.Occupation;
                iSumInsured = Convert.ToInt64(userForCalculationDto.SumInsured);



                switch (sSelectedOccupation)
                {
                /*
                 * Occupation selection options on screen:
                 *
                 * 1 => Select
                 * 2 => Cleaner
                 * 3 => Doctor
                 * 4 => Author
                 * 5 => Farmer
                 * 6 => Mechanic
                 * 7 => Florist
                 *
                 */
                case "Select":
                    iRiskFactor = OccupationRating.NotSet;
                    break;

                case "Cleaner":
                    iRiskFactor = OccupationRating.LightManual;
                    break;

                case "Doctor":
                    iRiskFactor = OccupationRating.Professional;
                    break;

                case "Author":
                    iRiskFactor = OccupationRating.WhiteCollar;
                    break;

                case "Farmer":
                    iRiskFactor = OccupationRating.HeavyManual;
                    break;

                case "Mechanic":
                    iRiskFactor = OccupationRating.HeavyManual;
                    break;

                case "Florist":
                    iRiskFactor = OccupationRating.LightManual;
                    break;

                default:
                    iRiskFactor = 1;
                    break;
                }

                if (iSumInsured > 0 && iRiskFactor > 0 && iAge > 0)
                {
                    userPremium = new PremiumCalculator();
                    userPremium.iPremiumSumInsured = iSumInsured;
                    userPremium.iPremiumRiskFactor = iRiskFactor;
                    userPremium.iPremiumAge        = iAge;
                    return(userPremium.CalculatePremium());
                }

                else
                {
                    return(0);
                }

                // Calculate and return Premium  value
                //  return  (iSumInsured * iRiskFactor * iAge) / 1000 * 12;;
            }
            catch (Exception ex) {
                string sException = ex.Message;
                return(0);
            }
        }
예제 #2
0
 public async Task <IActionResult> Calculate(UserForCalculationDto userForCalculationDto)
 {
     userForCalculationDto.Premium = _repo.Calculate(userForCalculationDto);
     return(StatusCode(200, userForCalculationDto));
 }