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

47 lines
1.2 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,
};
}