DD.WellWorkover.Cloud/AsbCloudApp/Exceptions/ArgumentsInvalidException.cs

47 lines
1.3 KiB
C#

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