private CalculationResponse AfterwardsValidation(Calculation request, CalculationResponse response) { //Check annual payment //Если годовой платёж (включая проценты) больше половины дохода --> кредит не выдаётся if (response.Payment > request.Income / 2) { response.SetError("Your annual payment is more than a half of your annual income. We're sorry about that."); return(response); } return(response); }
private CalculationResponse RequestedSumCheck(Calculation request, CalculationResponse response) { var possibleSum = request.RequestedSum; //При пассивном доходе выдаётся кредит на сумму до 1 млн, наёмным работникам - до 5 млн, собственное дело - до 10 млн if (request.IncomeType == IncomeType.Passive) { possibleSum = (possibleSum > request.MaxSumForPassiveIncome) ? request.MaxSumForPassiveIncome : possibleSum; } if (request.IncomeType == IncomeType.Employee) { possibleSum = (possibleSum > request.MaxSumForEmployeeIncome) ? request.MaxSumForEmployeeIncome : possibleSum; } if (request.IncomeType == IncomeType.Business) { possibleSum = (possibleSum > request.MaxSumForBusinessIncome) ? request.MaxSumForBusinessIncome : possibleSum; } //При кредитном рейтинге -1 выдаётся кредит на сумму до 1 млн, при 0 - до 5 млн, при 1 или 2 - до 10 млн if (request.CreditRate == -1) { possibleSum = (possibleSum > request.MaxSumForM1Rate) ? request.MaxSumForM1Rate : possibleSum; } if (request.CreditRate == 0) { possibleSum = (possibleSum > request.MaxSumFor0Rate) ? request.MaxSumFor0Rate : possibleSum; } if (request.CreditRate > 0) { possibleSum = (possibleSum > request.MaxSumFor1PRate) ? request.MaxSumFor1PRate : possibleSum; } if (possibleSum < request.RequestedSum) { response.SetError("Max sum for you: " + possibleSum + "M"); } return(response); }
private CalculationResponse Validation(Calculation request, CalculationResponse response) { //Age if (request.Age < 1) { response.SetError("Incorrect age"); return(response); } if (request.Age < 18) { response.SetError("You are too young"); return(response); } //Check pension status //Если возраст превышает пенсионный возраст на момент возврата кредита --> кредит не выдаётся var creditEndAge = request.Age + request.Term; if (request.Sex == Sex.Male) { if (creditEndAge > request.PensionAgeMale) { response.SetError("You'll be pensioner when credit is over"); return(response); } } else { if (creditEndAge > request.PensionAgeFemale) { response.SetError("You'll be pensioner when credit is over"); return(response); } } //Check income //Если результат деления запрошенной суммы на срок погашения в годах более трети годового дохода --> кредит не выдаётся var annualPayment = request.RequestedSum / request.Term; if (annualPayment > request.Income / 3) { response.SetError("You won't have enogh money to pay the bills"); return(response); } //Check credit rate //Если кредитный рейтинг -2 --> кредит не выдаётся if (request.CreditRate == -2) { response.SetError("Your credit rate is too low"); return(response); } //Check income type //Если в источнике дохода указано "безработный" --> кредит не выдаётся if (request.IncomeType == IncomeType.Unemployed) { response.SetError("Did you really expect credit approval? You're unemployed!"); return(response); } return(response); }