namespace PARR.Domain.Exceptions
{
///
/// Базовый класс для всех ошибок
///
public abstract class BaseException : Exception
{
protected BaseException(string message) : base(message) { }
}
///
/// Ошибка БД. 502
///
public class DbErrorException : BaseException
{
///
/// Ошибка БД.
///
///
public DbErrorException(string message) : base(message) { }
}
///
/// Объект не найден. 404
///
public class NotFoundException : BaseException
{
///
/// Объект не найден.
///
///
public NotFoundException(string message) : base(message) { }
}
///
/// Ошибка валидации. 400.
/// Использовать эту ошибку, если не подходит валидация от Fluent (ValidationException)
///
public class AppValidationException : BaseException
{
///
/// Ошибка валидации.
///
///
public AppValidationException(string message) : base(message) { }
}
///
/// Объект уже существует. 409
///
public class AlreadyExistsException : BaseException
{
///
/// Объект уже существует.
///
///
public AlreadyExistsException(string message) : base(message) { }
}
///
/// Ошибка при работе с внешним сервисом. 502
///
public class ExternalServiceException : BaseException
{
///
/// Ошибка при работе с внешним сервисом.
///
///
public ExternalServiceException(string message) : base(message) { }
}
///
/// Пользователь не аутентифицирован. 401
///
public class UnauthorizedException : BaseException
{
///
/// Пользователь не аутентифицирован.
///
///
public UnauthorizedException(string message) : base(message) { }
}
///
/// Доступ запрещен. 403.
/// Пользователь вошел в систему (мы знаем, кто он), но у него нет прав на конкретное действие или объект.
///
public class ForbiddenException : BaseException
{
///
/// Доступ запрещен.
///
///
public ForbiddenException(string message) : base(message) { }
}
///
/// Ошибка при расчете NextRun. 422 (запрос валиден, но бизнес логика не смогла нормально его обработать)
///
public class NextRunException : BaseException
{
///
/// Ошибка при расчете NextRun
///
///
public NextRunException(string message) : base(message){}
}
}