diff --git a/src/ReC.Domain/Constants/RecStatus.cs b/src/ReC.Domain/Constants/RecStatus.cs
index 5800139..51e04a7 100644
--- a/src/ReC.Domain/Constants/RecStatus.cs
+++ b/src/ReC.Domain/Constants/RecStatus.cs
@@ -1,431 +1,23 @@
-using ReC.Domain.Views;
-
-namespace ReC.Domain.Constants;
+namespace ReC.Domain.Constants;
///
-/// Represents status codes used to indicate the outcome of an operation.
+/// Represents the general outcome of an operation, independent of any specific technology or protocol.
///
-/// Includes all standard HTTP status codes as defined in ,
-/// as well as custom non-HTTP status codes for internal operation results.
+/// Technology-specific details (e.g., HTTP status codes) are stored separately
+/// in the RESULT_INFO and RESULT_INFO_DETAIL fields.
///
///
///
public enum RecStatus : short
{
///
- /// Indicates that a SQL query executed successfully (value 0).
- /// Used as the result status when
- /// or completes without error.
+ /// Indicates that the operation completed successfully (value 0).
///
- QuerySuccess = 0,
+ OK = 0,
///
- /// Indicates that an operation failed at any stage (value 999).
- /// This includes SQL query failures during preprocessing/postprocessing,
- /// HTTP request errors, or any other unhandled exception within the action pipeline.
+ /// Indicates that the operation failed (value 1).
+ /// When set, the RESULT_ERROR field should contain the error details.
///
- Failed = 999,
-
- //
- // Summary:
- // Equivalent to HTTP status 100. System.Net.HttpStatusCode.Continue indicates that
- // the client can continue with its request.
- Continue = 100,
- //
- // Summary:
- // Equivalent to HTTP status 101. System.Net.HttpStatusCode.SwitchingProtocols indicates
- // that the protocol version or protocol is being changed.
- SwitchingProtocols = 101,
- //
- // Summary:
- // Equivalent to HTTP status 102. System.Net.HttpStatusCode.Processing indicates
- // that the server has accepted the complete request but hasn't completed it yet.
- Processing = 102,
- //
- // Summary:
- // Equivalent to HTTP status 103. System.Net.HttpStatusCode.EarlyHints indicates
- // to the client that the server is likely to send a final response with the header
- // fields included in the informational response.
- EarlyHints = 103,
- //
- // Summary:
- // Equivalent to HTTP status 200. System.Net.HttpStatusCode.OK indicates that the
- // request succeeded and that the requested information is in the response. This
- // is the most common status code to receive.
- OK = 200,
- //
- // Summary:
- // Equivalent to HTTP status 201. System.Net.HttpStatusCode.Created indicates that
- // the request resulted in a new resource created before the response was sent.
- Created = 201,
- //
- // Summary:
- // Equivalent to HTTP status 202. System.Net.HttpStatusCode.Accepted indicates that
- // the request has been accepted for further processing.
- Accepted = 202,
- //
- // Summary:
- // Equivalent to HTTP status 203. System.Net.HttpStatusCode.NonAuthoritativeInformation
- // indicates that the returned meta information is from a cached copy instead of
- // the origin server and therefore may be incorrect.
- NonAuthoritativeInformation = 203,
- //
- // Summary:
- // Equivalent to HTTP status 204. System.Net.HttpStatusCode.NoContent indicates
- // that the request has been successfully processed and that the response is intentionally
- // blank.
- NoContent = 204,
- //
- // Summary:
- // Equivalent to HTTP status 205. System.Net.HttpStatusCode.ResetContent indicates
- // that the client should reset (not reload) the current resource.
- ResetContent = 205,
- //
- // Summary:
- // Equivalent to HTTP status 206. System.Net.HttpStatusCode.PartialContent indicates
- // that the response is a partial response as requested by a GET request that includes
- // a byte range.
- PartialContent = 206,
- //
- // Summary:
- // Equivalent to HTTP status 207. System.Net.HttpStatusCode.MultiStatus indicates
- // multiple status codes for a single response during a Web Distributed Authoring
- // and Versioning (WebDAV) operation. The response body contains XML that describes
- // the status codes.
- MultiStatus = 207,
- //
- // Summary:
- // Equivalent to HTTP status 208. System.Net.HttpStatusCode.AlreadyReported indicates
- // that the members of a WebDAV binding have already been enumerated in a preceding
- // part of the multistatus response, and are not being included again.
- AlreadyReported = 208,
- //
- // Summary:
- // Equivalent to HTTP status 226. System.Net.HttpStatusCode.IMUsed indicates that
- // the server has fulfilled a request for the resource, and the response is a representation
- // of the result of one or more instance-manipulations applied to the current instance.
- IMUsed = 226,
- //
- // Summary:
- // Equivalent to HTTP status 300. System.Net.HttpStatusCode.Ambiguous indicates
- // that the requested information has multiple representations. The default action
- // is to treat this status as a redirect and follow the contents of the Location
- // header associated with this response. Ambiguous is a synonym for MultipleChoices.
- Ambiguous = 300,
- //
- // Summary:
- // Equivalent to HTTP status 300. System.Net.HttpStatusCode.MultipleChoices indicates
- // that the requested information has multiple representations. The default action
- // is to treat this status as a redirect and follow the contents of the Location
- // header associated with this response. MultipleChoices is a synonym for Ambiguous.
- MultipleChoices = 300,
- //
- // Summary:
- // Equivalent to HTTP status 301. System.Net.HttpStatusCode.Moved indicates that
- // the requested information has been moved to the URI specified in the Location
- // header. The default action when this status is received is to follow the Location
- // header associated with the response. When the original request method was POST,
- // the redirected request will use the GET method. Moved is a synonym for MovedPermanently.
- Moved = 301,
- //
- // Summary:
- // Equivalent to HTTP status 301. System.Net.HttpStatusCode.MovedPermanently indicates
- // that the requested information has been moved to the URI specified in the Location
- // header. The default action when this status is received is to follow the Location
- // header associated with the response. MovedPermanently is a synonym for Moved.
- MovedPermanently = 301,
- //
- // Summary:
- // Equivalent to HTTP status 302. System.Net.HttpStatusCode.Found indicates that
- // the requested information is located at the URI specified in the Location header.
- // The default action when this status is received is to follow the Location header
- // associated with the response. When the original request method was POST, the
- // redirected request will use the GET method. Found is a synonym for Redirect.
- Found = 302,
- //
- // Summary:
- // Equivalent to HTTP status 302. System.Net.HttpStatusCode.Redirect indicates that
- // the requested information is located at the URI specified in the Location header.
- // The default action when this status is received is to follow the Location header
- // associated with the response. When the original request method was POST, the
- // redirected request will use the GET method. Redirect is a synonym for Found.
- Redirect = 302,
- //
- // Summary:
- // Equivalent to HTTP status 303. System.Net.HttpStatusCode.RedirectMethod automatically
- // redirects the client to the URI specified in the Location header as the result
- // of a POST. The request to the resource specified by the Location header will
- // be made with a GET. RedirectMethod is a synonym for SeeOther.
- RedirectMethod = 303,
- //
- // Summary:
- // Equivalent to HTTP status 303. System.Net.HttpStatusCode.SeeOther automatically
- // redirects the client to the URI specified in the Location header as the result
- // of a POST. The request to the resource specified by the Location header will
- // be made with a GET. SeeOther is a synonym for RedirectMethod.
- SeeOther = 303,
- //
- // Summary:
- // Equivalent to HTTP status 304. System.Net.HttpStatusCode.NotModified indicates
- // that the client's cached copy is up to date. The contents of the resource are
- // not transferred.
- NotModified = 304,
- //
- // Summary:
- // Equivalent to HTTP status 305. System.Net.HttpStatusCode.UseProxy indicates that
- // the request should use the proxy server at the URI specified in the Location
- // header.
- UseProxy = 305,
- //
- // Summary:
- // Equivalent to HTTP status 306. System.Net.HttpStatusCode.Unused is a proposed
- // extension to the HTTP/1.1 specification that is not fully specified.
- Unused = 306,
- //
- // Summary:
- // Equivalent to HTTP status 307. System.Net.HttpStatusCode.RedirectKeepVerb indicates
- // that the request information is located at the URI specified in the Location
- // header. The default action when this status is received is to follow the Location
- // header associated with the response. When the original request method was POST,
- // the redirected request will also use the POST method. RedirectKeepVerb is a synonym
- // for TemporaryRedirect.
- RedirectKeepVerb = 307,
- //
- // Summary:
- // Equivalent to HTTP status 307. System.Net.HttpStatusCode.TemporaryRedirect indicates
- // that the request information is located at the URI specified in the Location
- // header. The default action when this status is received is to follow the Location
- // header associated with the response. When the original request method was POST,
- // the redirected request will also use the POST method. TemporaryRedirect is a
- // synonym for RedirectKeepVerb.
- TemporaryRedirect = 307,
- //
- // Summary:
- // Equivalent to HTTP status 308. System.Net.HttpStatusCode.PermanentRedirect indicates
- // that the request information is located at the URI specified in the Location
- // header. The default action when this status is received is to follow the Location
- // header associated with the response. When the original request method was POST,
- // the redirected request will also use the POST method.
- PermanentRedirect = 308,
- //
- // Summary:
- // Equivalent to HTTP status 400. System.Net.HttpStatusCode.BadRequest indicates
- // that the request could not be understood by the server. System.Net.HttpStatusCode.BadRequest
- // is sent when no other error is applicable, or if the exact error is unknown or
- // does not have its own error code.
- BadRequest = 400,
- //
- // Summary:
- // Equivalent to HTTP status 401. System.Net.HttpStatusCode.Unauthorized indicates
- // that the requested resource requires authentication. The WWW-Authenticate header
- // contains the details of how to perform the authentication.
- Unauthorized = 401,
- //
- // Summary:
- // Equivalent to HTTP status 402. System.Net.HttpStatusCode.PaymentRequired is reserved
- // for future use.
- PaymentRequired = 402,
- //
- // Summary:
- // Equivalent to HTTP status 403. System.Net.HttpStatusCode.Forbidden indicates
- // that the server refuses to fulfill the request.
- Forbidden = 403,
- //
- // Summary:
- // Equivalent to HTTP status 404. System.Net.HttpStatusCode.NotFound indicates that
- // the requested resource does not exist on the server.
- NotFound = 404,
- //
- // Summary:
- // Equivalent to HTTP status 405. System.Net.HttpStatusCode.MethodNotAllowed indicates
- // that the request method (POST or GET) is not allowed on the requested resource.
- MethodNotAllowed = 405,
- //
- // Summary:
- // Equivalent to HTTP status 406. System.Net.HttpStatusCode.NotAcceptable indicates
- // that the client has indicated with Accept headers that it will not accept any
- // of the available representations of the resource.
- NotAcceptable = 406,
- //
- // Summary:
- // Equivalent to HTTP status 407. System.Net.HttpStatusCode.ProxyAuthenticationRequired
- // indicates that the requested proxy requires authentication. The Proxy-authenticate
- // header contains the details of how to perform the authentication.
- ProxyAuthenticationRequired = 407,
- //
- // Summary:
- // Equivalent to HTTP status 408. System.Net.HttpStatusCode.RequestTimeout indicates
- // that the client did not send a request within the time the server was expecting
- // the request.
- RequestTimeout = 408,
- //
- // Summary:
- // Equivalent to HTTP status 409. System.Net.HttpStatusCode.Conflict indicates that
- // the request could not be carried out because of a conflict on the server.
- Conflict = 409,
- //
- // Summary:
- // Equivalent to HTTP status 410. System.Net.HttpStatusCode.Gone indicates that
- // the requested resource is no longer available.
- Gone = 410,
- //
- // Summary:
- // Equivalent to HTTP status 411. System.Net.HttpStatusCode.LengthRequired indicates
- // that the required Content-length header is missing.
- LengthRequired = 411,
- //
- // Summary:
- // Equivalent to HTTP status 412. System.Net.HttpStatusCode.PreconditionFailed indicates
- // that a condition set for this request failed, and the request cannot be carried
- // out. Conditions are set with conditional request headers like If-Match, If-None-Match,
- // or If-Unmodified-Since.
- PreconditionFailed = 412,
- //
- // Summary:
- // Equivalent to HTTP status 413. System.Net.HttpStatusCode.RequestEntityTooLarge
- // indicates that the request is too large for the server to process.
- RequestEntityTooLarge = 413,
- //
- // Summary:
- // Equivalent to HTTP status 414. System.Net.HttpStatusCode.RequestUriTooLong indicates
- // that the URI is too long.
- RequestUriTooLong = 414,
- //
- // Summary:
- // Equivalent to HTTP status 415. System.Net.HttpStatusCode.UnsupportedMediaType
- // indicates that the request is an unsupported type.
- UnsupportedMediaType = 415,
- //
- // Summary:
- // Equivalent to HTTP status 416. System.Net.HttpStatusCode.RequestedRangeNotSatisfiable
- // indicates that the range of data requested from the resource cannot be returned,
- // either because the beginning of the range is before the beginning of the resource,
- // or the end of the range is after the end of the resource.
- RequestedRangeNotSatisfiable = 416,
- //
- // Summary:
- // Equivalent to HTTP status 417. System.Net.HttpStatusCode.ExpectationFailed indicates
- // that an expectation given in an Expect header could not be met by the server.
- ExpectationFailed = 417,
- //
- // Summary:
- // Equivalent to HTTP status 421. System.Net.HttpStatusCode.MisdirectedRequest indicates
- // that the request was directed at a server that is not able to produce a response.
- MisdirectedRequest = 421,
- //
- // Summary:
- // Equivalent to HTTP status 422. System.Net.HttpStatusCode.UnprocessableEntity
- // indicates that the request was well-formed but was unable to be followed due
- // to semantic errors. UnprocessableEntity is a synonym for UnprocessableContent.
- UnprocessableEntity = 422,
- //
- // Summary:
- // Equivalent to HTTP status 422. System.Net.HttpStatusCode.UnprocessableContent
- // indicates that the request was well-formed but was unable to be followed due
- // to semantic errors. UnprocessableContent is a synonym for UnprocessableEntity.
- UnprocessableContent = 422,
- //
- // Summary:
- // Equivalent to HTTP status 423. System.Net.HttpStatusCode.Locked indicates that
- // the source or destination resource is locked.
- Locked = 423,
- //
- // Summary:
- // Equivalent to HTTP status 424. System.Net.HttpStatusCode.FailedDependency indicates
- // that the method couldn't be performed on the resource because the requested action
- // depended on another action and that action failed.
- FailedDependency = 424,
- //
- // Summary:
- // Equivalent to HTTP status 426. System.Net.HttpStatusCode.UpgradeRequired indicates
- // that the client should switch to a different protocol such as TLS/1.0.
- UpgradeRequired = 426,
- //
- // Summary:
- // Equivalent to HTTP status 428. System.Net.HttpStatusCode.PreconditionRequired
- // indicates that the server requires the request to be conditional.
- PreconditionRequired = 428,
- //
- // Summary:
- // Equivalent to HTTP status 429. System.Net.HttpStatusCode.TooManyRequests indicates
- // that the user has sent too many requests in a given amount of time.
- TooManyRequests = 429,
- //
- // Summary:
- // Equivalent to HTTP status 431. System.Net.HttpStatusCode.RequestHeaderFieldsTooLarge
- // indicates that the server is unwilling to process the request because its header
- // fields (either an individual header field or all the header fields collectively)
- // are too large.
- RequestHeaderFieldsTooLarge = 431,
- //
- // Summary:
- // Equivalent to HTTP status 451. System.Net.HttpStatusCode.UnavailableForLegalReasons
- // indicates that the server is denying access to the resource as a consequence
- // of a legal demand.
- UnavailableForLegalReasons = 451,
- //
- // Summary:
- // Equivalent to HTTP status 500. System.Net.HttpStatusCode.InternalServerError
- // indicates that a generic error has occurred on the server.
- InternalServerError = 500,
- //
- // Summary:
- // Equivalent to HTTP status 501. System.Net.HttpStatusCode.NotImplemented indicates
- // that the server does not support the requested function.
- NotImplemented = 501,
- //
- // Summary:
- // Equivalent to HTTP status 502. System.Net.HttpStatusCode.BadGateway indicates
- // that an intermediate proxy server received a bad response from another proxy
- // or the origin server.
- BadGateway = 502,
- //
- // Summary:
- // Equivalent to HTTP status 503. System.Net.HttpStatusCode.ServiceUnavailable indicates
- // that the server is temporarily unavailable, usually due to high load or maintenance.
- ServiceUnavailable = 503,
- //
- // Summary:
- // Equivalent to HTTP status 504. System.Net.HttpStatusCode.GatewayTimeout indicates
- // that an intermediate proxy server timed out while waiting for a response from
- // another proxy or the origin server.
- GatewayTimeout = 504,
- //
- // Summary:
- // Equivalent to HTTP status 505. System.Net.HttpStatusCode.HttpVersionNotSupported
- // indicates that the requested HTTP version is not supported by the server.
- HttpVersionNotSupported = 505,
- //
- // Summary:
- // Equivalent to HTTP status 506. System.Net.HttpStatusCode.VariantAlsoNegotiates
- // indicates that the chosen variant resource is configured to engage in transparent
- // content negotiation itself and, therefore, isn't a proper endpoint in the negotiation
- // process.
- VariantAlsoNegotiates = 506,
- //
- // Summary:
- // Equivalent to HTTP status 507. System.Net.HttpStatusCode.InsufficientStorage
- // indicates that the server is unable to store the representation needed to complete
- // the request.
- InsufficientStorage = 507,
- //
- // Summary:
- // Equivalent to HTTP status 508. System.Net.HttpStatusCode.LoopDetected indicates
- // that the server terminated an operation because it encountered an infinite loop
- // while processing a WebDAV request with "Depth: infinity". This status code is
- // meant for backward compatibility with clients not aware of the 208 status code
- // System.Net.HttpStatusCode.AlreadyReported appearing in multistatus response bodies.
- LoopDetected = 508,
- //
- // Summary:
- // Equivalent to HTTP status 510. System.Net.HttpStatusCode.NotExtended indicates
- // that further extensions to the request are required for the server to fulfill
- // it.
- NotExtended = 510,
- //
- // Summary:
- // Equivalent to HTTP status 511. System.Net.HttpStatusCode.NetworkAuthenticationRequired
- // indicates that the client needs to authenticate to gain network access; it's
- // intended for use by intercepting proxies used to control access to the network.
- NetworkAuthenticationRequired = 511
+ Error = 1
}
\ No newline at end of file
diff --git a/src/ReC.Domain/Constants/RecStatusExtensions.cs b/src/ReC.Domain/Constants/RecStatusExtensions.cs
index e6ee54e..04e3861 100644
--- a/src/ReC.Domain/Constants/RecStatusExtensions.cs
+++ b/src/ReC.Domain/Constants/RecStatusExtensions.cs
@@ -4,31 +4,13 @@ namespace ReC.Domain.Constants;
public static class RecStatusExtensions
{
- public static HttpStatusCode? ToHttpStatusCode(this RecStatus status)
- {
- int code = (int)status;
-
- if (Enum.IsDefined(typeof(HttpStatusCode), code))
- {
- return (HttpStatusCode)code;
- }
-
- return null;
- }
-
- public static bool IsSuccess(this HttpStatusCode code)
+ ///
+ /// Converts an to a general
+ /// based on whether the HTTP status represents a success (2xx) or an error.
+ ///
+ public static RecStatus ToRecStatus(this HttpStatusCode code)
{
int value = (int)code;
- return value >= 200 && value <= 299;
+ return value >= 200 && value <= 299 ? RecStatus.OK : RecStatus.Error;
}
-
- public static bool IsSuccess(this RecStatus status)
- => status switch
- {
- RecStatus.QuerySuccess => true,
- RecStatus.Failed => false,
- _ => status.ToHttpStatusCode() is HttpStatusCode httpStatus && httpStatus.IsSuccess()
- };
-
- public static RecStatus ToRecStatus(this HttpStatusCode code) => (RecStatus)(short)code;
}
\ No newline at end of file