From 4aeef10ef754315bb8a590e97a8e7e0ad935716b Mon Sep 17 00:00:00 2001 From: TekH Date: Mon, 30 Mar 2026 10:41:39 +0200 Subject: [PATCH] Add StatusExtensions with HTTP status mapping methods Added StatusExtensions.cs with extension methods for Status and HttpStatusCode: - ToHttpStatusCode maps Status to nullable HttpStatusCode if possible. - IsSuccess checks if a Status or HttpStatusCode represents a successful response. - Handles both direct Status values and those convertible to HTTP codes. --- src/ReC.Domain/Constants/StatusExtensions.cs | 32 ++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/ReC.Domain/Constants/StatusExtensions.cs diff --git a/src/ReC.Domain/Constants/StatusExtensions.cs b/src/ReC.Domain/Constants/StatusExtensions.cs new file mode 100644 index 0000000..06c85df --- /dev/null +++ b/src/ReC.Domain/Constants/StatusExtensions.cs @@ -0,0 +1,32 @@ +using System.Net; + +namespace ReC.Domain.Constants; + +public static class StatusExtensions +{ + public static HttpStatusCode? ToHttpStatusCode(this Status status) + { + int code = (int)status; + + if (Enum.IsDefined(typeof(HttpStatusCode), code)) + { + return (HttpStatusCode)code; + } + + return null; + } + + public static bool IsSuccess(this HttpStatusCode code) + { + int value = (int)code; + return value >= 200 && value <= 299; + } + + public static bool IsSuccess(this Status status) + => status switch + { + Status.QuerySuccess => true, + Status.QueryFailed => false, + _ => status.ToHttpStatusCode() is HttpStatusCode httpStatus && httpStatus.IsSuccess() + }; +} \ No newline at end of file