fix throw request validation error

This commit is contained in:
vchikalkin 2023-08-29 11:36:22 +03:00
parent 26c574f2b5
commit 84f8b2fffe
8 changed files with 23 additions and 26 deletions

View File

@ -14,8 +14,8 @@ public static partial class CalculateManager
var preparedPayments = requestCalculation.preparedPayments; var preparedPayments = requestCalculation.preparedPayments;
var additionalData = requestCalculation.additionalData; var additionalData = requestCalculation.additionalData;
var validationErrors = new Validation().ValidateRequest(requestCalculation); new Validation().ValidateRequest(requestCalculation);
if (validationErrors.Count > 0) return new ManagerResult { Errors = validationErrors };
var constants = new Constants.Calculation(); var constants = new Constants.Calculation();

View File

@ -14,9 +14,9 @@ public static partial class CalculateManager
var preparedPayments = requestCalculation.preparedPayments; var preparedPayments = requestCalculation.preparedPayments;
var additionalData = requestCalculation.additionalData; var additionalData = requestCalculation.additionalData;
var validationErrors = new Validation().ValidateRequest(requestCalculation); new Validation().ValidateRequest(requestCalculation);
if (validationErrors.Count > 0) return new ManagerResult { Errors = validationErrors };
var constants = new Constants.Calculation(); var constants = new Constants.Calculation();

View File

@ -28,8 +28,8 @@ public static partial class CalculateManager
var additionalData = requestCalculation.additionalData; var additionalData = requestCalculation.additionalData;
var flags = requestCalculation.Flags; var flags = requestCalculation.Flags;
var validationErrors = new Validation().ValidateRequest(requestCalculation); new Validation().ValidateRequest(requestCalculation);
if (validationErrors.Count > 0) return new ManagerResult { Errors = validationErrors };
var constants = new Constants.Calculation(); var constants = new Constants.Calculation();

View File

@ -28,8 +28,8 @@ public static partial class CalculateManager
var additionalData = requestCalculation.additionalData; var additionalData = requestCalculation.additionalData;
var flags = requestCalculation.Flags; var flags = requestCalculation.Flags;
var validationErrors = new Validation().ValidateRequest(requestCalculation); new Validation().ValidateRequest(requestCalculation);
if (validationErrors.Count > 0) return new ManagerResult { Errors = validationErrors };
var constants = new Constants.Calculation(); var constants = new Constants.Calculation();

View File

@ -33,8 +33,8 @@ public static partial class CalculateManager
var additionalData = requestCalculation.additionalData; var additionalData = requestCalculation.additionalData;
var flags = requestCalculation.Flags; var flags = requestCalculation.Flags;
var validationErrors = new Validation().ValidateRequest(requestCalculation); new Validation().ValidateRequest(requestCalculation);
if (validationErrors.Count > 0) return new ManagerResult { Errors = validationErrors };
var constants = new Constants.Calculation(); var constants = new Constants.Calculation();

View File

@ -34,8 +34,8 @@ public static partial class CalculateManager
var additionalData = requestCalculation.additionalData; var additionalData = requestCalculation.additionalData;
var flags = requestCalculation.Flags; var flags = requestCalculation.Flags;
var validationErrors = new Validation().ValidateRequest(requestCalculation); new Validation().ValidateRequest(requestCalculation);
if (validationErrors.Count > 0) return new ManagerResult { Errors = validationErrors };
var constants = new Constants.Calculation(); var constants = new Constants.Calculation();

View File

@ -34,8 +34,8 @@ public static partial class CalculateManager
var additionalData = requestCalculation.additionalData; var additionalData = requestCalculation.additionalData;
var flags = requestCalculation.Flags; var flags = requestCalculation.Flags;
var validationErrors = new Validation().ValidateRequest(requestCalculation); new Validation().ValidateRequest(requestCalculation);
if (validationErrors.Count > 0) return new ManagerResult { Errors = validationErrors };
var constants = new Constants.Calculation(); var constants = new Constants.Calculation();

View File

@ -1,35 +1,33 @@
using System; using System;
using System.Collections.Generic;
using EvoCalculator.Core.Constants; using EvoCalculator.Core.Constants;
using EvoCalculator.Core.Models.Calculation.Models.Request; using EvoCalculator.Core.Models.Calculation.Models.Request;
using EvoCalculator.Core.Tools.Errors;
namespace EvoCalculator.Core.Tools.Validation; namespace EvoCalculator.Core.Tools.Validation;
public class Validation public class Validation
{ {
public List<string> ValidateRequest(RequestCalculation requestCalculation) public void ValidateRequest(RequestCalculation requestCalculation)
{ {
var errors = new List<string>();
var preparedValues = requestCalculation.preparedValues; var preparedValues = requestCalculation.preparedValues;
var additionalData = requestCalculation.additionalData; var additionalData = requestCalculation.additionalData;
if (preparedValues.AcceptSum <= 0) if (preparedValues.AcceptSum <= 0)
errors.Add("Стоимость ПЛ с учетом скидки не указана или меньше или равна 0"); throw new AppException("Стоимость ПЛ с учетом скидки не указана или меньше или равна 0");
if (preparedValues.Nmper <= 0) errors.Add("Некорректно указан Срок лизинга"); if (preparedValues.Nmper <= 0) throw new AppException("Некорректно указан Срок лизинга");
if (preparedValues.IrrExpected <= 0 && preparedValues.Discount <= 0 && preparedValues.ComissionRub <= 0) if (preparedValues.IrrExpected <= 0 && preparedValues.Discount <= 0 && preparedValues.ComissionRub <= 0)
errors.Add( throw new AppException(
"Невозможно посчитать график с IRR=0, необходимо указать или Скидку поставщика или Комиссию"); "Невозможно посчитать график с IRR=0, необходимо указать или Скидку поставщика или Комиссию");
if (preparedValues.PaymentDateNew < preparedValues.DogDate) if (preparedValues.PaymentDateNew < preparedValues.DogDate)
errors.Add( throw new AppException(
"Некорректно указана Дата второго платежа, она не может быть раньше Даты заключения ДЛ"); "Некорректно указана Дата второго платежа, она не может быть раньше Даты заключения ДЛ");
if (preparedValues.PaymentDateNew == null) if (preparedValues.PaymentDateNew == null)
if (preparedValues.FirstPaymentSum / preparedValues.AcceptSum >= 0.500001m) if (preparedValues.FirstPaymentSum / preparedValues.AcceptSum >= 0.500001m)
errors.Add( throw new AppException(
"Первый платеж по графику более 50% от стоимости ПЛ с учетом скидки. Необходимо уменьшить первый платеж"); "Первый платеж по графику более 50% от стоимости ПЛ с учетом скидки. Необходимо уменьшить первый платеж");
var AllAgencyPerc = Math.Round( var AllAgencyPerc = Math.Round(
@ -39,8 +37,7 @@ public class Validation
preparedValues.FinancialDeptOfDeliverySum) / preparedValues.AcceptSum * 100, 2); preparedValues.FinancialDeptOfDeliverySum) / preparedValues.AcceptSum * 100, 2);
if (additionalData.MaxAllAgencyPerc != null && AllAgencyPerc > (decimal)additionalData.MaxAllAgencyPerc) if (additionalData.MaxAllAgencyPerc != null && AllAgencyPerc > (decimal)additionalData.MaxAllAgencyPerc)
errors.Add("По итогам расчета сумма заложенного АВ превышает максимальный уровень % АВ по Предложению"); throw new AppException(
"По итогам расчета сумма заложенного АВ превышает максимальный уровень % АВ по Предложению");
return errors;
} }
} }