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){} } }