forked from ddrilling/AsbCloudServer
Дмитрий Степанов
6f05877ac9
Сделал небольшую доработку по исключениям. 1. Создал новое исключение, которое позволяет указывать сразу несколько невалидных параметров. 2. Поправил middleware, сделал обобщённый класс, который преобразует исключение.
49 lines
1.4 KiB
C#
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,
|
|
};
|
|
}
|
|
}
|