DD.WellWorkover.Cloud/AsbCloudApp/Exceptions/ArgumentInvalidException.cs
Дмитрий Степанов 6f05877ac9 Исключения
Сделал небольшую доработку по исключениям.
1. Создал новое исключение, которое позволяет указывать сразу несколько невалидных параметров.
2. Поправил middleware, сделал обобщённый класс, который преобразует исключение.
2023-06-28 16:18:29 +05:00

49 lines
1.4 KiB
C#

using System;
using AsbCloudApp.Exceptions.Interfaces;
namespace AsbCloudApp.Exceptions
{
/// <summary>
/// Argument validation fail Exception
/// </summary>
public class ArgumentInvalidException : Exception,
IHasValidation
{
/// <summary>
/// название аргумента
/// </summary>
public string ParamName { get; } = string.Empty;
/// <summary>
/// конструктор
/// </summary>
/// <param name="message"></param>
/// <param name="paramName"></param>
public ArgumentInvalidException(string message, string paramName)
: base(message)
{
ParamName = paramName;
}
/// <summary>
/// преобразование в объект валидации
/// </summary>
/// <returns></returns>
public object ToValidationErrorObject()
=> MakeValidationError(ParamName, Message);
/// <summary>
/// фабрика объекта валидации
/// </summary>
/// <param name="paramName"></param>
/// <param name="errors"></param>
/// <returns></returns>
public static object MakeValidationError(string paramName, params string[] errors)
=> new
{
name = paramName,
errors,
};
}
}