From c751709b1b4fe6f16fd84647e8e071455e7b78d6 Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Tue, 17 Mar 2026 03:04:36 +1100 Subject: v0.1a --- Exception.cs | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Exception.cs (limited to 'Exception.cs') diff --git a/Exception.cs b/Exception.cs new file mode 100644 index 0000000..1e070eb --- /dev/null +++ b/Exception.cs @@ -0,0 +1,65 @@ +namespace HyperBooru; + +public class HBException : Exception { + public HBException() + : base() {} + public HBException(string message) + : base(message) {} + public HBException(string message, Exception inner) + : base(message, inner) {} +} + +public class ObjectNotFoundException : HBException { + public Guid Guid { get; private init; } + + public ObjectNotFoundException(Guid guid) + : base($"Object not found: {guid}") {} +} + +public class TagException : HBException { + public TagDefinition? TagDefinition { get; private init; } + + public TagException(string message) : base(message) {} + public TagException(string message, TagDefinition tagDefinition) + : base(message) => + TagDefinition = tagDefinition; +} + +public class TagDuplicateException : TagException { + public bool NameExists { get; private init; } + public bool AliasExists { get; private init; } + + public TagDuplicateException(bool nameExists, bool aliasExists) + : base(GenerateMessage(nameExists, aliasExists)) { + + NameExists = nameExists; + AliasExists = aliasExists; + } + + private static string GenerateMessage(bool nameExists, bool aliasExists) { + if(nameExists && aliasExists) + return $"Both tag name and alias already exist!"; + else if(nameExists) + return $"Tag name already exists!"; + else + return $"Tag alias already exists"; + } +} + +public class MediaException : HBException { + public Media? Media { get; private init; } + + public MediaException(string message) : base(message) {} + public MediaException(string message, Media media) : base(message) => + Media = media; +} + +public class MediaCreateException : MediaException { + public MediaCreateException(string message) + : base(message) {} +} + +public class ThumbnailException : MediaException { + public ThumbnailException(string message, Media media) + :base(message, media) {} +} -- cgit v1.3