2023-06-28 16:18:29 +05:00
|
|
|
using System;
|
|
|
|
using AsbCloudApp.Exceptions.Interfaces;
|
|
|
|
|
|
|
|
namespace AsbCloudApp.Exceptions;
|
|
|
|
|
|
|
|
/// <summary>
|
2023-06-28 17:09:53 +05:00
|
|
|
/// Исключение для нескольких невалидных агрументов
|
2023-06-28 16:18:29 +05:00
|
|
|
/// </summary>
|
|
|
|
public class ArgumentsInvalidException : Exception,
|
|
|
|
IHasValidation
|
|
|
|
{
|
|
|
|
/// <summary>
|
2023-06-28 17:09:53 +05:00
|
|
|
/// Имена параметров
|
2023-06-28 16:18:29 +05:00
|
|
|
/// </summary>
|
|
|
|
public string[] ParamNames { get; } = Array.Empty<string>();
|
|
|
|
|
|
|
|
/// <summary>
|
2023-06-28 17:09:53 +05:00
|
|
|
/// Контсруктор исключения
|
2023-06-28 16:18:29 +05:00
|
|
|
/// </summary>
|
|
|
|
/// <param name="message"></param>
|
|
|
|
/// <param name="paramNames"></param>
|
|
|
|
public ArgumentsInvalidException(string message,
|
|
|
|
string[] paramNames)
|
|
|
|
{
|
|
|
|
ParamNames = paramNames;
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
2023-06-28 17:09:53 +05:00
|
|
|
/// преобразование в объект валидации
|
2023-06-28 16:18:29 +05:00
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
public object ToValidationErrorObject()
|
|
|
|
=> MakeValidationError(ParamNames, Message);
|
|
|
|
|
|
|
|
/// <summary>
|
2023-06-28 17:09:53 +05:00
|
|
|
/// фабрика объекта валидации
|
2023-06-28 16:18:29 +05:00
|
|
|
/// </summary>
|
|
|
|
/// <param name="paramName"></param>
|
|
|
|
/// <param name="errors"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
public static object MakeValidationError(string[] paramNames, params string[] errors)
|
|
|
|
=> new
|
|
|
|
{
|
|
|
|
names = paramNames,
|
|
|
|
errors,
|
|
|
|
};
|
|
|
|
}
|