(feature): better message and type conversion handling
This commit is contained in:
parent
2c6cd09101
commit
77e1ec671d
@ -8,7 +8,7 @@
|
||||
|
||||
<!-- NuGet package metadata -->
|
||||
<PackageId>MaksIT.Results</PackageId>
|
||||
<Version>1.0.0</Version>
|
||||
<Version>1.0.1</Version>
|
||||
<Authors>Maksym Sadovnychyy</Authors>
|
||||
<Company>MAKS-IT</Company>
|
||||
<Product>MaksIT.Results</Product>
|
||||
|
||||
@ -1,250 +1,460 @@
|
||||
using System.Net;
|
||||
|
||||
namespace MaksIT.Results {
|
||||
|
||||
public partial class Result {
|
||||
namespace MaksIT.Results;
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server could not understand the request due to invalid syntax.
|
||||
/// Corresponds to HTTP status code 400 Bad Request.
|
||||
/// </summary>
|
||||
public static Result BadRequest(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.BadRequest);
|
||||
}
|
||||
public partial class Result {
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the client must authenticate itself to get the requested response.
|
||||
/// Corresponds to HTTP status code 401 Unauthorized.
|
||||
/// </summary>
|
||||
public static Result Unauthorized(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.Unauthorized);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server could not understand the request due to invalid syntax.
|
||||
/// Corresponds to HTTP status code 400 Bad Request.
|
||||
/// </summary>
|
||||
public static Result BadRequest(string message) =>
|
||||
BadRequest(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the client does not have access rights to the content.
|
||||
/// Corresponds to HTTP status code 403 Forbidden.
|
||||
/// </summary>
|
||||
public static Result Forbidden(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.Forbidden);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server can not find the requested resource.
|
||||
/// Corresponds to HTTP status code 404 Not Found.
|
||||
/// </summary>
|
||||
public static Result NotFound(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.NotFound);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request could not be completed due to a conflict with the current state of the resource.
|
||||
/// Corresponds to HTTP status code 409 Conflict.
|
||||
/// </summary>
|
||||
public static Result Conflict(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.Conflict);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource is no longer available and will not be available again.
|
||||
/// Corresponds to HTTP status code 410 Gone.
|
||||
/// </summary>
|
||||
public static Result Gone(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), (HttpStatusCode)410); // 410 Gone
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request failed because it depended on another request and that request failed.
|
||||
/// Corresponds to HTTP status code 424 Failed Dependency.
|
||||
/// </summary>
|
||||
public static Result FailedDependency(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), (HttpStatusCode)424); // 424 Failed Dependency
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server requires the request to be conditional.
|
||||
/// Corresponds to HTTP status code 428 Precondition Required.
|
||||
/// </summary>
|
||||
public static Result PreconditionRequired(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), (HttpStatusCode)428); // 428 Precondition Required
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the user has sent too many requests in a given amount of time.
|
||||
/// Corresponds to HTTP status code 429 Too Many Requests.
|
||||
/// </summary>
|
||||
public static Result TooManyRequests(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), (HttpStatusCode)429); // 429 Too Many Requests
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is unwilling to process the request because its header fields are too large.
|
||||
/// Corresponds to HTTP status code 431 Request Header Fields Too Large.
|
||||
/// </summary>
|
||||
public static Result RequestHeaderFieldsTooLarge(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), (HttpStatusCode)431); // 431 Request Header Fields Too Large
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request entity because it is too large.
|
||||
/// Corresponds to HTTP status code 413 Payload Too Large.
|
||||
/// </summary>
|
||||
public static Result PayloadTooLarge(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), (HttpStatusCode)413); // 413 Payload Too Large
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because the URI is too long.
|
||||
/// Corresponds to HTTP status code 414 URI Too Long.
|
||||
/// </summary>
|
||||
public static Result UriTooLong(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), (HttpStatusCode)414); // 414 URI Too Long
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because the media type is unsupported.
|
||||
/// Corresponds to HTTP status code 415 Unsupported Media Type.
|
||||
/// </summary>
|
||||
public static Result UnsupportedMediaType(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.UnsupportedMediaType);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because it expects the request to have a defined Content-Length header.
|
||||
/// Corresponds to HTTP status code 411 Length Required.
|
||||
/// </summary>
|
||||
public static Result LengthRequired(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), (HttpStatusCode)411); // 411 Length Required
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request due to an illegal request entity.
|
||||
/// Corresponds to HTTP status code 422 Unprocessable Entity.
|
||||
/// </summary>
|
||||
public static Result UnprocessableEntity(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), (HttpStatusCode)422); // 422 Unprocessable Entity
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server could not understand the request due to invalid syntax.
|
||||
/// Corresponds to HTTP status code 400 Bad Request.
|
||||
/// </summary>
|
||||
public static Result BadRequest(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.BadRequest);
|
||||
}
|
||||
|
||||
public partial class Result<T> : Result {
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the client must authenticate itself to get the requested response.
|
||||
/// Corresponds to HTTP status code 401 Unauthorized.
|
||||
/// </summary>
|
||||
public static Result Unauthorized(string message) =>
|
||||
Unauthorized(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server could not understand the request due to invalid syntax.
|
||||
/// Corresponds to HTTP status code 400 Bad Request.
|
||||
/// </summary>
|
||||
public static Result<T> BadRequest(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.BadRequest);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the client must authenticate itself to get the requested response.
|
||||
/// Corresponds to HTTP status code 401 Unauthorized.
|
||||
/// </summary>
|
||||
public static Result Unauthorized(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.Unauthorized);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the client must authenticate itself to get the requested response.
|
||||
/// Corresponds to HTTP status code 401 Unauthorized.
|
||||
/// </summary>
|
||||
public static Result<T> Unauthorized(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.Unauthorized);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the client does not have access rights to the content.
|
||||
/// Corresponds to HTTP status code 403 Forbidden.
|
||||
/// </summary>
|
||||
public static Result Forbidden(string message) =>
|
||||
Forbidden(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the client does not have access rights to the content.
|
||||
/// Corresponds to HTTP status code 403 Forbidden.
|
||||
/// </summary>
|
||||
public static Result<T> Forbidden(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.Forbidden);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the client does not have access rights to the content.
|
||||
/// Corresponds to HTTP status code 403 Forbidden.
|
||||
/// </summary>
|
||||
public static Result Forbidden(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.Forbidden);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server can not find the requested resource.
|
||||
/// Corresponds to HTTP status code 404 Not Found.
|
||||
/// </summary>
|
||||
public static Result<T> NotFound(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.NotFound);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server can not find the requested resource.
|
||||
/// Corresponds to HTTP status code 404 Not Found.
|
||||
/// </summary>
|
||||
public static Result NotFound(string message) =>
|
||||
NotFound(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request could not be completed due to a conflict with the current state of the resource.
|
||||
/// Corresponds to HTTP status code 409 Conflict.
|
||||
/// </summary>
|
||||
public static Result<T> Conflict(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.Conflict);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server can not find the requested resource.
|
||||
/// Corresponds to HTTP status code 404 Not Found.
|
||||
/// </summary>
|
||||
public static Result NotFound(List<string> messagess) {
|
||||
return new Result(false, messagess, HttpStatusCode.NotFound);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource is no longer available and will not be available again.
|
||||
/// Corresponds to HTTP status code 410 Gone.
|
||||
/// </summary>
|
||||
public static Result<T> Gone(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), (HttpStatusCode)410); // 410 Gone
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request could not be completed due to a conflict with the current state of the resource.
|
||||
/// Corresponds to HTTP status code 409 Conflict.
|
||||
/// </summary>
|
||||
public static Result Conflict(string message) =>
|
||||
Conflict(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request failed because it depended on another request and that request failed.
|
||||
/// Corresponds to HTTP status code 424 Failed Dependency.
|
||||
/// </summary>
|
||||
public static Result<T> FailedDependency(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), (HttpStatusCode)424); // 424 Failed Dependency
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request could not be completed due to a conflict with the current state of the resource.
|
||||
/// Corresponds to HTTP status code 409 Conflict.
|
||||
/// </summary>
|
||||
public static Result Conflict(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.Conflict);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server requires the request to be conditional.
|
||||
/// Corresponds to HTTP status code 428 Precondition Required.
|
||||
/// </summary>
|
||||
public static Result<T> PreconditionRequired(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), (HttpStatusCode)428); // 428 Precondition Required
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource is no longer available and will not be available again.
|
||||
/// Corresponds to HTTP status code 410 Gone.
|
||||
/// </summary>
|
||||
public static Result Gone(string message) =>
|
||||
Gone(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the user has sent too many requests in a given amount of time.
|
||||
/// Corresponds to HTTP status code 429 Too Many Requests.
|
||||
/// </summary>
|
||||
public static Result<T> TooManyRequests(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), (HttpStatusCode)429); // 429 Too Many Requests
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource is no longer available and will not be available again.
|
||||
/// Corresponds to HTTP status code 410 Gone.
|
||||
/// </summary>
|
||||
public static Result Gone(List<string> messages) {
|
||||
return new Result(false, messages, (HttpStatusCode)410); // 410 Gone
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is unwilling to process the request because its header fields are too large.
|
||||
/// Corresponds to HTTP status code 431 Request Header Fields Too Large.
|
||||
/// </summary>
|
||||
public static Result<T> RequestHeaderFieldsTooLarge(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), (HttpStatusCode)431); // 431 Request Header Fields Too Large
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request failed because it depended on another request and that request failed.
|
||||
/// Corresponds to HTTP status code 424 Failed Dependency.
|
||||
/// </summary>
|
||||
public static Result FailedDependency(string message) =>
|
||||
FailedDependency(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request entity because it is too large.
|
||||
/// Corresponds to HTTP status code 413 Payload Too Large.
|
||||
/// </summary>
|
||||
public static Result<T> PayloadTooLarge(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), (HttpStatusCode)413); // 413 Payload Too Large
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request failed because it depended on another request and that request failed.
|
||||
/// Corresponds to HTTP status code 424 Failed Dependency.
|
||||
/// </summary>
|
||||
public static Result FailedDependency(List<string> messages) {
|
||||
return new Result(false, messages, (HttpStatusCode)424); // 424 Failed Dependency
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because the URI is too long.
|
||||
/// Corresponds to HTTP status code 414 URI Too Long.
|
||||
/// </summary>
|
||||
public static Result<T> UriTooLong(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), (HttpStatusCode)414); // 414 URI Too Long
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server requires the request to be conditional.
|
||||
/// Corresponds to HTTP status code 428 Precondition Required.
|
||||
/// </summary>
|
||||
public static Result PreconditionRequired(string message) =>
|
||||
PreconditionRequired(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because the media type is unsupported.
|
||||
/// Corresponds to HTTP status code 415 Unsupported Media Type.
|
||||
/// </summary>
|
||||
public static Result<T> UnsupportedMediaType(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.UnsupportedMediaType);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server requires the request to be conditional.
|
||||
/// Corresponds to HTTP status code 428 Precondition Required.
|
||||
/// </summary>
|
||||
public static Result PreconditionRequired(List<string> messages) {
|
||||
return new Result(false, messages, (HttpStatusCode)428); // 428 Precondition Required
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because it expects the request to have a defined Content-Length header.
|
||||
/// Corresponds to HTTP status code 411 Length Required.
|
||||
/// </summary>
|
||||
public static Result<T> LengthRequired(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), (HttpStatusCode)411); // 411 Length Required
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the user has sent too many requests in a given amount of time.
|
||||
/// Corresponds to HTTP status code 429 Too Many Requests.
|
||||
/// </summary>
|
||||
public static Result TooManyRequests(string message) =>
|
||||
TooManyRequests(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request due to an illegal request entity.
|
||||
/// Corresponds to HTTP status code 422 Unprocessable Entity.
|
||||
/// </summary>
|
||||
public static Result<T> UnprocessableEntity(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), (HttpStatusCode)422); // 422 Unprocessable Entity
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the user has sent too many requests in a given amount of time.
|
||||
/// Corresponds to HTTP status code 429 Too Many Requests.
|
||||
/// </summary>
|
||||
public static Result TooManyRequests(List<string> messages) {
|
||||
return new Result(false, messages, (HttpStatusCode)429); // 429 Too Many Requests
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is unwilling to process the request because its header fields are too large.
|
||||
/// Corresponds to HTTP status code 431 Request Header Fields Too Large.
|
||||
/// </summary>
|
||||
public static Result RequestHeaderFieldsTooLarge(string message) =>
|
||||
RequestHeaderFieldsTooLarge(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is unwilling to process the request because its header fields are too large.
|
||||
/// Corresponds to HTTP status code 431 Request Header Fields Too Large.
|
||||
/// </summary>
|
||||
public static Result RequestHeaderFieldsTooLarge(List<string> messages) {
|
||||
return new Result(false, messages, (HttpStatusCode)431); // 431 Request Header Fields Too Large
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request entity because it is too large.
|
||||
/// Corresponds to HTTP status code 413 Payload Too Large.
|
||||
/// </summary>
|
||||
public static Result PayloadTooLarge(string message) =>
|
||||
PayloadTooLarge(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request entity because it is too large.
|
||||
/// Corresponds to HTTP status code 413 Payload Too Large.
|
||||
/// </summary>
|
||||
public static Result PayloadTooLarge(List<string> messages) {
|
||||
return new Result(false, messages, (HttpStatusCode)413); // 413 Payload Too Large
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because the URI is too long.
|
||||
/// Corresponds to HTTP status code 414 URI Too Long.
|
||||
/// </summary>
|
||||
public static Result UriTooLong(string message) =>
|
||||
UriTooLong(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because the URI is too long.
|
||||
/// Corresponds to HTTP status code 414 URI Too Long.
|
||||
/// </summary>
|
||||
public static Result UriTooLong(List<string> messages) {
|
||||
return new Result(false, messages, (HttpStatusCode)414); // 414 URI Too Long
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because the media type is unsupported.
|
||||
/// Corresponds to HTTP status code 415 Unsupported Media Type.
|
||||
/// </summary>
|
||||
public static Result UnsupportedMediaType(string message) =>
|
||||
UnsupportedMediaType(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because the media type is unsupported.
|
||||
/// Corresponds to HTTP status code 415 Unsupported Media Type.
|
||||
/// </summary>
|
||||
public static Result UnsupportedMediaType(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.UnsupportedMediaType);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because it expects the request to have a defined Content-Length header.
|
||||
/// Corresponds to HTTP status code 411 Length Required.
|
||||
/// </summary>
|
||||
public static Result LengthRequired(string message) =>
|
||||
LengthRequired(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because it expects the request to have a defined Content-Length header.
|
||||
/// Corresponds to HTTP status code 411 Length Required.
|
||||
/// </summary>
|
||||
public static Result LengthRequired(List<string> messages) {
|
||||
return new Result(false, messages, (HttpStatusCode)411); // 411 Length Required
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request due to an illegal request entity.
|
||||
/// Corresponds to HTTP status code 422 Unprocessable Entity.
|
||||
/// </summary>
|
||||
public static Result UnprocessableEntity(string message) =>
|
||||
UnprocessableEntity(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request due to an illegal request entity.
|
||||
/// Corresponds to HTTP status code 422 Unprocessable Entity.
|
||||
/// </summary>
|
||||
public static Result UnprocessableEntity(List<string> messages) {
|
||||
return new Result(false, messages, (HttpStatusCode)422); // 422 Unprocessable Entity
|
||||
}
|
||||
}
|
||||
|
||||
public partial class Result<T> : Result {
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server could not understand the request due to invalid syntax.
|
||||
/// Corresponds to HTTP status code 400 Bad Request.
|
||||
/// </summary>
|
||||
public static Result<T> BadRequest(T? value, string message) =>
|
||||
BadRequest(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server could not understand the request due to invalid syntax.
|
||||
/// Corresponds to HTTP status code 400 Bad Request.
|
||||
/// </summary>
|
||||
public static Result<T> BadRequest(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.BadRequest);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the client must authenticate itself to get the requested response.
|
||||
/// Corresponds to HTTP status code 401 Unauthorized.
|
||||
/// </summary>
|
||||
public static Result<T> Unauthorized(T? value, string message) =>
|
||||
Unauthorized(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the client must authenticate itself to get the requested response.
|
||||
/// Corresponds to HTTP status code 401 Unauthorized.
|
||||
/// </summary>
|
||||
public static Result<T> Unauthorized(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.Unauthorized);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the client does not have access rights to the content.
|
||||
/// Corresponds to HTTP status code 403 Forbidden.
|
||||
/// </summary>
|
||||
public static Result<T> Forbidden(T? value, string message) =>
|
||||
Forbidden(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the client does not have access rights to the content.
|
||||
/// Corresponds to HTTP status code 403 Forbidden.
|
||||
/// </summary>
|
||||
public static Result<T> Forbidden(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.Forbidden);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server can not find the requested resource.
|
||||
/// Corresponds to HTTP status code 404 Not Found.
|
||||
/// </summary>
|
||||
public static Result<T> NotFound(T? value, string message) =>
|
||||
NotFound(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server can not find the requested resource.
|
||||
/// Corresponds to HTTP status code 404 Not Found.
|
||||
/// </summary>
|
||||
public static Result<T> NotFound(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.NotFound);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request could not be completed due to a conflict with the current state of the resource.
|
||||
/// Corresponds to HTTP status code 409 Conflict.
|
||||
/// </summary>
|
||||
public static Result<T> Conflict(T? value, string message) =>
|
||||
Conflict(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request could not be completed due to a conflict with the current state of the resource.
|
||||
/// Corresponds to HTTP status code 409 Conflict.
|
||||
/// </summary>
|
||||
public static Result<T> Conflict(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.Conflict);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource is no longer available and will not be available again.
|
||||
/// Corresponds to HTTP status code 410 Gone.
|
||||
/// </summary>
|
||||
public static Result<T> Gone(T? value, string message) =>
|
||||
Gone(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource is no longer available and will not be available again.
|
||||
/// Corresponds to HTTP status code 410 Gone.
|
||||
/// </summary>
|
||||
public static Result<T> Gone(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, (HttpStatusCode)410); // 410 Gone
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request failed because it depended on another request and that request failed.
|
||||
/// Corresponds to HTTP status code 424 Failed Dependency.
|
||||
/// </summary>
|
||||
public static Result<T> FailedDependency(T? value, string message) =>
|
||||
FailedDependency(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request failed because it depended on another request and that request failed.
|
||||
/// Corresponds to HTTP status code 424 Failed Dependency.
|
||||
/// </summary>
|
||||
public static Result<T> FailedDependency(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, (HttpStatusCode)424); // 424 Failed Dependency
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server requires the request to be conditional.
|
||||
/// Corresponds to HTTP status code 428 Precondition Required.
|
||||
/// </summary>
|
||||
public static Result<T> PreconditionRequired(T? value, string message) =>
|
||||
PreconditionRequired(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server requires the request to be conditional.
|
||||
/// Corresponds to HTTP status code 428 Precondition Required.
|
||||
/// </summary>
|
||||
public static Result<T> PreconditionRequired(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, (HttpStatusCode)428); // 428 Precondition Required
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the user has sent too many requests in a given amount of time.
|
||||
/// Corresponds to HTTP status code 429 Too Many Requests.
|
||||
/// </summary>
|
||||
public static Result<T> TooManyRequests(T? value, string message) =>
|
||||
TooManyRequests(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the user has sent too many requests in a given amount of time.
|
||||
/// Corresponds to HTTP status code 429 Too Many Requests.
|
||||
/// </summary>
|
||||
public static Result<T> TooManyRequests(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, (HttpStatusCode)429); // 429 Too Many Requests
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is unwilling to process the request because its header fields are too large.
|
||||
/// Corresponds to HTTP status code 431 Request Header Fields Too Large.
|
||||
/// </summary>
|
||||
public static Result<T> RequestHeaderFieldsTooLarge(T? value, string message) =>
|
||||
RequestHeaderFieldsTooLarge(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is unwilling to process the request because its header fields are too large.
|
||||
/// Corresponds to HTTP status code 431 Request Header Fields Too Large.
|
||||
/// </summary>
|
||||
public static Result<T> RequestHeaderFieldsTooLarge(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, (HttpStatusCode)431); // 431 Request Header Fields Too Large
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request entity because it is too large.
|
||||
/// Corresponds to HTTP status code 413 Payload Too Large.
|
||||
/// </summary>
|
||||
public static Result<T> PayloadTooLarge(T? value, string message) =>
|
||||
PayloadTooLarge(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request entity because it is too large.
|
||||
/// Corresponds to HTTP status code 413 Payload Too Large.
|
||||
/// </summary>
|
||||
public static Result<T> PayloadTooLarge(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, (HttpStatusCode)413); // 413 Payload Too Large
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because the URI is too long.
|
||||
/// Corresponds to HTTP status code 414 URI Too Long.
|
||||
/// </summary>
|
||||
public static Result<T> UriTooLong(T? value, string message) =>
|
||||
UriTooLong(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because the URI is too long.
|
||||
/// Corresponds to HTTP status code 414 URI Too Long.
|
||||
/// </summary>
|
||||
public static Result<T> UriTooLong(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, (HttpStatusCode)414); // 414 URI Too Long
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because the media type is unsupported.
|
||||
/// Corresponds to HTTP status code 415 Unsupported Media Type.
|
||||
/// </summary>
|
||||
public static Result<T> UnsupportedMediaType(T? value, string message) =>
|
||||
UnsupportedMediaType(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because the media type is unsupported.
|
||||
/// Corresponds to HTTP status code 415 Unsupported Media Type.
|
||||
/// </summary>
|
||||
public static Result<T> UnsupportedMediaType(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.UnsupportedMediaType);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because it expects the request to have a defined Content-Length header.
|
||||
/// Corresponds to HTTP status code 411 Length Required.
|
||||
/// </summary>
|
||||
public static Result<T> LengthRequired(T? value, string message) =>
|
||||
LengthRequired(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request because it expects the request to have a defined Content-Length header.
|
||||
/// Corresponds to HTTP status code 411 Length Required.
|
||||
/// </summary>
|
||||
public static Result<T> LengthRequired(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, (HttpStatusCode)411); // 411 Length Required
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request due to an illegal request entity.
|
||||
/// Corresponds to HTTP status code 422 Unprocessable Entity.
|
||||
/// </summary>
|
||||
public static Result<T> UnprocessableEntity(T? value, string message) =>
|
||||
UnprocessableEntity(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server cannot process the request due to an illegal request entity.
|
||||
/// Corresponds to HTTP status code 422 Unprocessable Entity.
|
||||
/// </summary>
|
||||
public static Result<T> UnprocessableEntity(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, (HttpStatusCode)422); // 422 Unprocessable Entity
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,75 +1,131 @@
|
||||
using System.Net;
|
||||
|
||||
namespace MaksIT.Results {
|
||||
|
||||
public partial class Result {
|
||||
namespace MaksIT.Results;
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the initial part of a request has been received and the client should continue with the request.
|
||||
/// Corresponds to HTTP status code 100 Continue.
|
||||
/// </summary>
|
||||
public static Result Continue(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.Continue);
|
||||
}
|
||||
public partial class Result {
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is switching to a different protocol as requested by the client.
|
||||
/// Corresponds to HTTP status code 101 Switching Protocols.
|
||||
/// </summary>
|
||||
public static Result SwitchingProtocols(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.SwitchingProtocols);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server has received and is processing the request, but no response is available yet.
|
||||
/// Corresponds to HTTP status code 102 Processing.
|
||||
/// </summary>
|
||||
public static Result Processing(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.Processing);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is sending information about early hints that may be used by the client to begin preloading resources while the server prepares a final response.
|
||||
/// Corresponds to HTTP status code 103 Early Hints.
|
||||
/// </summary>
|
||||
public static Result EarlyHints(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), (HttpStatusCode)103); // Early Hints is not defined in HttpStatusCode enum, 103 is the official code
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the initial part of a request has been received and the client should continue with the request.
|
||||
/// Corresponds to HTTP status code 100 Continue.
|
||||
/// </summary>
|
||||
public static Result Continue(string message) =>
|
||||
Continue(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the initial part of a request has been received and the client should continue with the request.
|
||||
/// Corresponds to HTTP status code 100 Continue.
|
||||
/// </summary>
|
||||
public static Result Continue(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.Continue);
|
||||
}
|
||||
|
||||
public partial class Result<T> : Result {
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is switching to a different protocol as requested by the client.
|
||||
/// Corresponds to HTTP status code 101 Switching Protocols.
|
||||
/// </summary>
|
||||
public static Result SwitchingProtocols(string message) =>
|
||||
SwitchingProtocols(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the initial part of a request has been received and the client should continue with the request.
|
||||
/// Corresponds to HTTP status code 100 Continue.
|
||||
/// </summary>
|
||||
public static Result<T> Continue(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.Continue);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is switching to a different protocol as requested by the client.
|
||||
/// Corresponds to HTTP status code 101 Switching Protocols.
|
||||
/// </summary>
|
||||
public static Result SwitchingProtocols(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.SwitchingProtocols);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is switching to a different protocol as requested by the client.
|
||||
/// Corresponds to HTTP status code 101 Switching Protocols.
|
||||
/// </summary>
|
||||
public static Result<T> SwitchingProtocols(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.SwitchingProtocols);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server has received and is processing the request, but no response is available yet.
|
||||
/// Corresponds to HTTP status code 102 Processing.
|
||||
/// </summary>
|
||||
public static Result Processing(string message) =>
|
||||
Processing(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server has received and is processing the request, but no response is available yet.
|
||||
/// Corresponds to HTTP status code 102 Processing.
|
||||
/// </summary>
|
||||
public static Result<T> Processing(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.Processing);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server has received and is processing the request, but no response is available yet.
|
||||
/// Corresponds to HTTP status code 102 Processing.
|
||||
/// </summary>
|
||||
public static Result Processing(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.Processing);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is sending information about early hints that may be used by the client to begin preloading resources while the server prepares a final response.
|
||||
/// Corresponds to HTTP status code 103 Early Hints.
|
||||
/// </summary>
|
||||
public static Result<T> EarlyHints(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), (HttpStatusCode)103); // Early Hints is not defined in HttpStatusCode enum, 103 is the official code
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is sending information about early hints that may be used by the client to begin preloading resources while the server prepares a final response.
|
||||
/// Corresponds to HTTP status code 103 Early Hints.
|
||||
/// </summary>
|
||||
public static Result EarlyHints(string message) =>
|
||||
EarlyHints(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is sending information about early hints that may be used by the client to begin preloading resources while the server prepares a final response.
|
||||
/// Corresponds to HTTP status code 103 Early Hints.
|
||||
/// </summary>
|
||||
public static Result EarlyHints(List<string> messages) {
|
||||
return new Result(true, messages, (HttpStatusCode)103); // Early Hints is not defined in HttpStatusCode enum, 103 is the official code
|
||||
}
|
||||
}
|
||||
|
||||
public partial class Result<T> : Result {
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the initial part of a request has been received and the client should continue with the request.
|
||||
/// Corresponds to HTTP status code 100 Continue.
|
||||
/// </summary>
|
||||
public static Result<T> Continue(T? value, string message) =>
|
||||
Continue(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the initial part of a request has been received and the client should continue with the request.
|
||||
/// Corresponds to HTTP status code 100 Continue.
|
||||
/// </summary>
|
||||
public static Result<T> Continue(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.Continue);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is switching to a different protocol as requested by the client.
|
||||
/// Corresponds to HTTP status code 101 Switching Protocols.
|
||||
/// </summary>
|
||||
public static Result<T> SwitchingProtocols(T? value, string message) =>
|
||||
SwitchingProtocols(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is switching to a different protocol as requested by the client.
|
||||
/// Corresponds to HTTP status code 101 Switching Protocols.
|
||||
/// </summary>
|
||||
public static Result<T> SwitchingProtocols(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.SwitchingProtocols);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server has received and is processing the request, but no response is available yet.
|
||||
/// Corresponds to HTTP status code 102 Processing.
|
||||
/// </summary>
|
||||
public static Result<T> Processing(T? value, string message) =>
|
||||
Processing(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server has received and is processing the request, but no response is available yet.
|
||||
/// Corresponds to HTTP status code 102 Processing.
|
||||
/// </summary>
|
||||
public static Result<T> Processing(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.Processing);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is sending information about early hints that may be used by the client to begin preloading resources while the server prepares a final response.
|
||||
/// Corresponds to HTTP status code 103 Early Hints.
|
||||
/// </summary>
|
||||
public static Result<T> EarlyHints(T? value, string message) =>
|
||||
EarlyHints(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the server is sending information about early hints that may be used by the client to begin preloading resources while the server prepares a final response.
|
||||
/// Corresponds to HTTP status code 103 Early Hints.
|
||||
/// </summary>
|
||||
public static Result<T> EarlyHints(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, (HttpStatusCode)103); // Early Hints is not defined in HttpStatusCode enum, 103 is the official code
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,138 +1,250 @@
|
||||
using System.Net;
|
||||
|
||||
namespace MaksIT.Results {
|
||||
|
||||
public partial class Result {
|
||||
namespace MaksIT.Results;
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request has multiple options, and the user or user-agent should select one of them.
|
||||
/// Corresponds to HTTP status code 300 Multiple Choices.
|
||||
/// </summary>
|
||||
public static Result MultipleChoices(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.MultipleChoices);
|
||||
}
|
||||
public partial class Result {
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has been permanently moved to a new URI.
|
||||
/// Corresponds to HTTP status code 301 Moved Permanently.
|
||||
/// </summary>
|
||||
public static Result MovedPermanently(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.MovedPermanently);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request has multiple options, and the user or user-agent should select one of them.
|
||||
/// Corresponds to HTTP status code 300 Multiple Choices.
|
||||
/// </summary>
|
||||
public static Result MultipleChoices(string message) =>
|
||||
MultipleChoices(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource resides temporarily under a different URI.
|
||||
/// Corresponds to HTTP status code 302 Found.
|
||||
/// </summary>
|
||||
public static Result Found(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.Found);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the response to the request can be found under another URI using the GET method.
|
||||
/// Corresponds to HTTP status code 303 See Other.
|
||||
/// </summary>
|
||||
public static Result SeeOther(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.SeeOther);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has not been modified since the last request.
|
||||
/// Corresponds to HTTP status code 304 Not Modified.
|
||||
/// </summary>
|
||||
public static Result NotModified(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.NotModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource must be accessed through the proxy given by the location field.
|
||||
/// Corresponds to HTTP status code 305 Use Proxy.
|
||||
/// </summary>
|
||||
public static Result UseProxy(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.UseProxy);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource resides temporarily under a different URI, but future requests should still use the original URI.
|
||||
/// Corresponds to HTTP status code 307 Temporary Redirect.
|
||||
/// </summary>
|
||||
public static Result TemporaryRedirect(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.TemporaryRedirect);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has been permanently moved to a new URI, and future references should use the new URI.
|
||||
/// Corresponds to HTTP status code 308 Permanent Redirect.
|
||||
/// </summary>
|
||||
public static Result PermanentRedirect(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.PermanentRedirect);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request has multiple options, and the user or user-agent should select one of them.
|
||||
/// Corresponds to HTTP status code 300 Multiple Choices.
|
||||
/// </summary>
|
||||
public static Result MultipleChoices(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.MultipleChoices);
|
||||
}
|
||||
|
||||
public partial class Result<T> : Result {
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has been permanently moved to a new URI.
|
||||
/// Corresponds to HTTP status code 301 Moved Permanently.
|
||||
/// </summary>
|
||||
public static Result MovedPermanently(string message) =>
|
||||
MovedPermanently(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request has multiple options, and the user or user-agent should select one of them.
|
||||
/// Corresponds to HTTP status code 300 Multiple Choices.
|
||||
/// </summary>
|
||||
public static Result<T> MultipleChoices(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.MultipleChoices);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has been permanently moved to a new URI.
|
||||
/// Corresponds to HTTP status code 301 Moved Permanently.
|
||||
/// </summary>
|
||||
public static Result MovedPermanently(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.MovedPermanently);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has been permanently moved to a new URI.
|
||||
/// Corresponds to HTTP status code 301 Moved Permanently.
|
||||
/// </summary>
|
||||
public static Result<T> MovedPermanently(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.MovedPermanently);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource resides temporarily under a different URI.
|
||||
/// Corresponds to HTTP status code 302 Found.
|
||||
/// </summary>
|
||||
public static Result Found(string message) =>
|
||||
Found(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource resides temporarily under a different URI.
|
||||
/// Corresponds to HTTP status code 302 Found.
|
||||
/// </summary>
|
||||
public static Result<T> Found(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.Found);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource resides temporarily under a different URI.
|
||||
/// Corresponds to HTTP status code 302 Found.
|
||||
/// </summary>
|
||||
public static Result Found(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.Found);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the response to the request can be found under another URI using the GET method.
|
||||
/// Corresponds to HTTP status code 303 See Other.
|
||||
/// </summary>
|
||||
public static Result<T> SeeOther(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.SeeOther);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the response to the request can be found under another URI using the GET method.
|
||||
/// Corresponds to HTTP status code 303 See Other.
|
||||
/// </summary>
|
||||
public static Result SeeOther(string message) =>
|
||||
SeeOther(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has not been modified since the last request.
|
||||
/// Corresponds to HTTP status code 304 Not Modified.
|
||||
/// </summary>
|
||||
public static Result<T> NotModified(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.NotModified);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the response to the request can be found under another URI using the GET method.
|
||||
/// Corresponds to HTTP status code 303 See Other.
|
||||
/// </summary>
|
||||
public static Result SeeOther(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.SeeOther);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource must be accessed through the proxy given by the location field.
|
||||
/// Corresponds to HTTP status code 305 Use Proxy.
|
||||
/// </summary>
|
||||
public static Result<T> UseProxy(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.UseProxy);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has not been modified since the last request.
|
||||
/// Corresponds to HTTP status code 304 Not Modified.
|
||||
/// </summary>
|
||||
public static Result NotModified(string message) =>
|
||||
NotModified(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource resides temporarily under a different URI, but future requests should still use the original URI.
|
||||
/// Corresponds to HTTP status code 307 Temporary Redirect.
|
||||
/// </summary>
|
||||
public static Result<T> TemporaryRedirect(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.TemporaryRedirect);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has not been modified since the last request.
|
||||
/// Corresponds to HTTP status code 304 Not Modified.
|
||||
/// </summary>
|
||||
public static Result NotModified(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.NotModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has been permanently moved to a new URI, and future references should use the new URI.
|
||||
/// Corresponds to HTTP status code 308 Permanent Redirect.
|
||||
/// </summary>
|
||||
public static Result<T> PermanentRedirect(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.PermanentRedirect);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource must be accessed through the proxy given by the location field.
|
||||
/// Corresponds to HTTP status code 305 Use Proxy.
|
||||
/// </summary>
|
||||
public static Result UseProxy(string message) =>
|
||||
UseProxy(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource must be accessed through the proxy given by the location field.
|
||||
/// Corresponds to HTTP status code 305 Use Proxy.
|
||||
/// </summary>
|
||||
public static Result UseProxy(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.UseProxy);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource resides temporarily under a different URI, but future requests should still use the original URI.
|
||||
/// Corresponds to HTTP status code 307 Temporary Redirect.
|
||||
/// </summary>
|
||||
public static Result TemporaryRedirect(string message) =>
|
||||
TemporaryRedirect(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource resides temporarily under a different URI, but future requests should still use the original URI.
|
||||
/// Corresponds to HTTP status code 307 Temporary Redirect.
|
||||
/// </summary>
|
||||
public static Result TemporaryRedirect(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.TemporaryRedirect);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has been permanently moved to a new URI, and future references should use the new URI.
|
||||
/// Corresponds to HTTP status code 308 Permanent Redirect.
|
||||
/// </summary>
|
||||
public static Result PermanentRedirect(string message) =>
|
||||
PermanentRedirect(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has been permanently moved to a new URI, and future references should use the new URI.
|
||||
/// Corresponds to HTTP status code 308 Permanent Redirect.
|
||||
/// </summary>
|
||||
public static Result PermanentRedirect(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.PermanentRedirect);
|
||||
}
|
||||
}
|
||||
|
||||
public partial class Result<T> : Result {
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request has multiple options, and the user or user-agent should select one of them.
|
||||
/// Corresponds to HTTP status code 300 Multiple Choices.
|
||||
/// </summary>
|
||||
public static Result<T> MultipleChoices(T? value, string message) =>
|
||||
MultipleChoices(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the request has multiple options, and the user or user-agent should select one of them.
|
||||
/// Corresponds to HTTP status code 300 Multiple Choices.
|
||||
/// </summary>
|
||||
public static Result<T> MultipleChoices(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.MultipleChoices);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has been permanently moved to a new URI.
|
||||
/// Corresponds to HTTP status code 301 Moved Permanently.
|
||||
/// </summary>
|
||||
public static Result<T> MovedPermanently(T? value, string message) =>
|
||||
MovedPermanently(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has been permanently moved to a new URI.
|
||||
/// Corresponds to HTTP status code 301 Moved Permanently.
|
||||
/// </summary>
|
||||
public static Result<T> MovedPermanently(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.MovedPermanently);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource resides temporarily under a different URI.
|
||||
/// Corresponds to HTTP status code 302 Found.
|
||||
/// </summary>
|
||||
public static Result<T> Found(T? value, string message) =>
|
||||
Found(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource resides temporarily under a different URI.
|
||||
/// Corresponds to HTTP status code 302 Found.
|
||||
/// </summary>
|
||||
public static Result<T> Found(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.Found);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the response to the request can be found under another URI using the GET method.
|
||||
/// Corresponds to HTTP status code 303 See Other.
|
||||
/// </summary>
|
||||
public static Result<T> SeeOther(T? value, string message) =>
|
||||
SeeOther(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the response to the request can be found under another URI using the GET method.
|
||||
/// Corresponds to HTTP status code 303 See Other.
|
||||
/// </summary>
|
||||
public static Result<T> SeeOther(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.SeeOther);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has not been modified since the last request.
|
||||
/// Corresponds to HTTP status code 304 Not Modified.
|
||||
/// </summary>
|
||||
public static Result<T> NotModified(T? value, string message) =>
|
||||
NotModified(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has not been modified since the last request.
|
||||
/// Corresponds to HTTP status code 304 Not Modified.
|
||||
/// </summary>
|
||||
public static Result<T> NotModified(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.NotModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource must be accessed through the proxy given by the location field.
|
||||
/// Corresponds to HTTP status code 305 Use Proxy.
|
||||
/// </summary>
|
||||
public static Result<T> UseProxy(T? value, string message) =>
|
||||
UseProxy(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource must be accessed through the proxy given by the location field.
|
||||
/// Corresponds to HTTP status code 305 Use Proxy.
|
||||
/// </summary>
|
||||
public static Result<T> UseProxy(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.UseProxy);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource resides temporarily under a different URI, but future requests should still use the original URI.
|
||||
/// Corresponds to HTTP status code 307 Temporary Redirect.
|
||||
/// </summary>
|
||||
public static Result<T> TemporaryRedirect(T? value, string message) =>
|
||||
TemporaryRedirect(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource resides temporarily under a different URI, but future requests should still use the original URI.
|
||||
/// Corresponds to HTTP status code 307 Temporary Redirect.
|
||||
/// </summary>
|
||||
public static Result<T> TemporaryRedirect(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.TemporaryRedirect);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has been permanently moved to a new URI, and future references should use the new URI.
|
||||
/// Corresponds to HTTP status code 308 Permanent Redirect.
|
||||
/// </summary>
|
||||
public static Result<T> PermanentRedirect(T? value, string message) =>
|
||||
PermanentRedirect(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating that the requested resource has been permanently moved to a new URI, and future references should use the new URI.
|
||||
/// Corresponds to HTTP status code 308 Permanent Redirect.
|
||||
/// </summary>
|
||||
public static Result<T> PermanentRedirect(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.PermanentRedirect);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,186 +1,339 @@
|
||||
using System.Net;
|
||||
|
||||
namespace MaksIT.Results {
|
||||
namespace MaksIT.Results;
|
||||
|
||||
public partial class Result {
|
||||
public partial class Result {
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server encountered an unexpected condition that prevented it from fulfilling the request.
|
||||
/// Corresponds to HTTP status code 500 Internal Server Error.
|
||||
/// </summary>
|
||||
public static Result InternalServerError(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.InternalServerError);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server encountered an unexpected condition that prevented it from fulfilling the request.
|
||||
/// Corresponds to HTTP status code 500 Internal Server Error.
|
||||
/// </summary>
|
||||
public static Result InternalServerError(string message) =>
|
||||
InternalServerError(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server does not support the functionality required to fulfill the request.
|
||||
/// Corresponds to HTTP status code 501 Not Implemented.
|
||||
/// </summary>
|
||||
public static Result NotImplemented(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.NotImplemented);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
|
||||
/// Corresponds to HTTP status code 502 Bad Gateway.
|
||||
/// </summary>
|
||||
public static Result BadGateway(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.BadGateway);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server is currently unable to handle the request due to temporary overload or maintenance of the server.
|
||||
/// Corresponds to HTTP status code 503 Service Unavailable.
|
||||
/// </summary>
|
||||
public static Result ServiceUnavailable(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.ServiceUnavailable);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server, while acting as a gateway or proxy, did not receive a timely response from the upstream server.
|
||||
/// Corresponds to HTTP status code 504 Gateway Timeout.
|
||||
/// </summary>
|
||||
public static Result GatewayTimeout(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.GatewayTimeout);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server does not support the HTTP protocol version used in the request.
|
||||
/// Corresponds to HTTP status code 505 HTTP Version Not Supported.
|
||||
/// </summary>
|
||||
public static Result HttpVersionNotSupported(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.HttpVersionNotSupported);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.
|
||||
/// Corresponds to HTTP status code 506 Variant Also Negotiates.
|
||||
/// </summary>
|
||||
public static Result VariantAlsoNegotiates(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.VariantAlsoNegotiates);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server is unable to store the representation needed to complete the request.
|
||||
/// Corresponds to HTTP status code 507 Insufficient Storage.
|
||||
/// </summary>
|
||||
public static Result InsufficientStorage(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.InsufficientStorage);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server detected an infinite loop while processing a request with depth: infinity. Usually encountered in WebDAV scenarios.
|
||||
/// Corresponds to HTTP status code 508 Loop Detected.
|
||||
/// </summary>
|
||||
public static Result LoopDetected(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.LoopDetected);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating further extensions to the request are required for the server to fulfill it.
|
||||
/// Corresponds to HTTP status code 510 Not Extended.
|
||||
/// </summary>
|
||||
public static Result NotExtended(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.NotExtended);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the client needs to authenticate to gain network access.
|
||||
/// Corresponds to HTTP status code 511 Network Authentication Required.
|
||||
/// </summary>
|
||||
public static Result NetworkAuthenticationRequired(params string[] messages) {
|
||||
return new Result(false, new List<string>(messages), HttpStatusCode.NetworkAuthenticationRequired);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server encountered an unexpected condition that prevented it from fulfilling the request.
|
||||
/// Corresponds to HTTP status code 500 Internal Server Error.
|
||||
/// </summary>
|
||||
public static Result InternalServerError(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.InternalServerError);
|
||||
}
|
||||
|
||||
public partial class Result<T> : Result {
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server does not support the functionality required to fulfill the request.
|
||||
/// Corresponds to HTTP status code 501 Not Implemented.
|
||||
/// </summary>
|
||||
public static Result NotImplemented(string message) =>
|
||||
NotImplemented(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server encountered an unexpected condition that prevented it from fulfilling the request.
|
||||
/// Corresponds to HTTP status code 500 Internal Server Error.
|
||||
/// </summary>
|
||||
public static Result<T> InternalServerError(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.InternalServerError);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server does not support the functionality required to fulfill the request.
|
||||
/// Corresponds to HTTP status code 501 Not Implemented.
|
||||
/// </summary>
|
||||
public static Result NotImplemented(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.NotImplemented);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server does not support the functionality required to fulfill the request.
|
||||
/// Corresponds to HTTP status code 501 Not Implemented.
|
||||
/// </summary>
|
||||
public static Result<T> NotImplemented(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.NotImplemented);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
|
||||
/// Corresponds to HTTP status code 502 Bad Gateway.
|
||||
/// </summary>
|
||||
public static Result BadGateway(string message) =>
|
||||
BadGateway(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
|
||||
/// Corresponds to HTTP status code 502 Bad Gateway.
|
||||
/// </summary>
|
||||
public static Result<T> BadGateway(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.BadGateway);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
|
||||
/// Corresponds to HTTP status code 502 Bad Gateway.
|
||||
/// </summary>
|
||||
public static Result BadGateway(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.BadGateway);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server is currently unable to handle the request due to temporary overload or maintenance of the server.
|
||||
/// Corresponds to HTTP status code 503 Service Unavailable.
|
||||
/// </summary>
|
||||
public static Result<T> ServiceUnavailable(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.ServiceUnavailable);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server is currently unable to handle the request due to temporary overload or maintenance of the server.
|
||||
/// Corresponds to HTTP status code 503 Service Unavailable.
|
||||
/// </summary>
|
||||
public static Result ServiceUnavailable(string message) =>
|
||||
ServiceUnavailable(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server, while acting as a gateway or proxy, did not receive a timely response from the upstream server.
|
||||
/// Corresponds to HTTP status code 504 Gateway Timeout.
|
||||
/// </summary>
|
||||
public static Result<T> GatewayTimeout(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.GatewayTimeout);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server is currently unable to handle the request due to temporary overload or maintenance of the server.
|
||||
/// Corresponds to HTTP status code 503 Service Unavailable.
|
||||
/// </summary>
|
||||
public static Result ServiceUnavailable(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.ServiceUnavailable);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server does not support the HTTP protocol version used in the request.
|
||||
/// Corresponds to HTTP status code 505 HTTP Version Not Supported.
|
||||
/// </summary>
|
||||
public static Result<T> HttpVersionNotSupported(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.HttpVersionNotSupported);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server, while acting as a gateway or proxy, did not receive a timely response from the upstream server.
|
||||
/// Corresponds to HTTP status code 504 Gateway Timeout.
|
||||
/// </summary>
|
||||
public static Result GatewayTimeout(string message) =>
|
||||
GatewayTimeout(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.
|
||||
/// Corresponds to HTTP status code 506 Variant Also Negotiates.
|
||||
/// </summary>
|
||||
public static Result<T> VariantAlsoNegotiates(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.VariantAlsoNegotiates);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server, while acting as a gateway or proxy, did not receive a timely response from the upstream server.
|
||||
/// Corresponds to HTTP status code 504 Gateway Timeout.
|
||||
/// </summary>
|
||||
public static Result GatewayTimeout(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.GatewayTimeout);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server is unable to store the representation needed to complete the request.
|
||||
/// Corresponds to HTTP status code 507 Insufficient Storage.
|
||||
/// </summary>
|
||||
public static Result<T> InsufficientStorage(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.InsufficientStorage);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server does not support the HTTP protocol version used in the request.
|
||||
/// Corresponds to HTTP status code 505 HTTP Version Not Supported.
|
||||
/// </summary>
|
||||
public static Result HttpVersionNotSupported(string message) =>
|
||||
HttpVersionNotSupported(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server detected an infinite loop while processing a request with depth: infinity. Usually encountered in WebDAV scenarios.
|
||||
/// Corresponds to HTTP status code 508 Loop Detected.
|
||||
/// </summary>
|
||||
public static Result<T> LoopDetected(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.LoopDetected);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server does not support the HTTP protocol version used in the request.
|
||||
/// Corresponds to HTTP status code 505 HTTP Version Not Supported.
|
||||
/// </summary>
|
||||
public static Result HttpVersionNotSupported(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.HttpVersionNotSupported);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating further extensions to the request are required for the server to fulfill it.
|
||||
/// Corresponds to HTTP status code 510 Not Extended.
|
||||
/// </summary>
|
||||
public static Result<T> NotExtended(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.NotExtended);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.
|
||||
/// Corresponds to HTTP status code 506 Variant Also Negotiates.
|
||||
/// </summary>
|
||||
public static Result VariantAlsoNegotiates(string message) =>
|
||||
VariantAlsoNegotiates(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the client needs to authenticate to gain network access.
|
||||
/// Corresponds to HTTP status code 511 Network Authentication Required.
|
||||
/// </summary>
|
||||
public static Result<T> NetworkAuthenticationRequired(T? value, params string[] messages) {
|
||||
return new Result<T>(value, false, new List<string>(messages), HttpStatusCode.NetworkAuthenticationRequired);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.
|
||||
/// Corresponds to HTTP status code 506 Variant Also Negotiates.
|
||||
/// </summary>
|
||||
public static Result VariantAlsoNegotiates(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.VariantAlsoNegotiates);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server is unable to store the representation needed to complete the request.
|
||||
/// Corresponds to HTTP status code 507 Insufficient Storage.
|
||||
/// </summary>
|
||||
public static Result InsufficientStorage(string message) =>
|
||||
InsufficientStorage(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server is unable to store the representation needed to complete the request.
|
||||
/// Corresponds to HTTP status code 507 Insufficient Storage.
|
||||
/// </summary>
|
||||
public static Result InsufficientStorage(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.InsufficientStorage);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server detected an infinite loop while processing a request with depth: infinity. Usually encountered in WebDAV scenarios.
|
||||
/// Corresponds to HTTP status code 508 Loop Detected.
|
||||
/// </summary>
|
||||
public static Result LoopDetected(string message) =>
|
||||
LoopDetected(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server detected an infinite loop while processing a request with depth: infinity. Usually encountered in WebDAV scenarios.
|
||||
/// Corresponds to HTTP status code 508 Loop Detected.
|
||||
/// </summary>
|
||||
public static Result LoopDetected(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.LoopDetected);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating further extensions to the request are required for the server to fulfill it.
|
||||
/// Corresponds to HTTP status code 510 Not Extended.
|
||||
/// </summary>
|
||||
public static Result NotExtended(string message) =>
|
||||
NotExtended(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating further extensions to the request are required for the server to fulfill it.
|
||||
/// Corresponds to HTTP status code 510 Not Extended.
|
||||
/// </summary>
|
||||
public static Result NotExtended(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.NotExtended);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the client needs to authenticate to gain network access.
|
||||
/// Corresponds to HTTP status code 511 Network Authentication Required.
|
||||
/// </summary>
|
||||
public static Result NetworkAuthenticationRequired(string message) =>
|
||||
NetworkAuthenticationRequired(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the client needs to authenticate to gain network access.
|
||||
/// Corresponds to HTTP status code 511 Network Authentication Required.
|
||||
/// </summary>
|
||||
public static Result NetworkAuthenticationRequired(List<string> messages) {
|
||||
return new Result(false, messages, HttpStatusCode.NetworkAuthenticationRequired);
|
||||
}
|
||||
}
|
||||
|
||||
public partial class Result<T> : Result {
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server encountered an unexpected condition that prevented it from fulfilling the request.
|
||||
/// Corresponds to HTTP status code 500 Internal Server Error.
|
||||
/// </summary>
|
||||
public static Result<T> InternalServerError(T? value, string message) =>
|
||||
InternalServerError(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server encountered an unexpected condition that prevented it from fulfilling the request.
|
||||
/// Corresponds to HTTP status code 500 Internal Server Error.
|
||||
/// </summary>
|
||||
public static Result<T> InternalServerError(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.InternalServerError);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server does not support the functionality required to fulfill the request.
|
||||
/// Corresponds to HTTP status code 501 Not Implemented.
|
||||
/// </summary>
|
||||
public static Result<T> NotImplemented(T? value, string message) =>
|
||||
NotImplemented(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server does not support the functionality required to fulfill the request.
|
||||
/// Corresponds to HTTP status code 501 Not Implemented.
|
||||
/// </summary>
|
||||
public static Result<T> NotImplemented(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.NotImplemented);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
|
||||
/// Corresponds to HTTP status code 502 Bad Gateway.
|
||||
/// </summary>
|
||||
public static Result<T> BadGateway(T? value, string message) =>
|
||||
BadGateway(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server, while acting as a gateway or proxy, received an invalid response from the upstream server.
|
||||
/// Corresponds to HTTP status code 502 Bad Gateway.
|
||||
/// </summary>
|
||||
public static Result<T> BadGateway(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.BadGateway);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server is currently unable to handle the request due to temporary overload or maintenance of the server.
|
||||
/// Corresponds to HTTP status code 503 Service Unavailable.
|
||||
/// </summary>
|
||||
public static Result<T> ServiceUnavailable(T? value, string message) =>
|
||||
ServiceUnavailable(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server is currently unable to handle the request due to temporary overload or maintenance of the server.
|
||||
/// Corresponds to HTTP status code 503 Service Unavailable.
|
||||
/// </summary>
|
||||
public static Result<T> ServiceUnavailable(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.ServiceUnavailable);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server, while acting as a gateway or proxy, did not receive a timely response from the upstream server.
|
||||
/// Corresponds to HTTP status code 504 Gateway Timeout.
|
||||
/// </summary>
|
||||
public static Result<T> GatewayTimeout(T? value, string message) =>
|
||||
GatewayTimeout(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server, while acting as a gateway or proxy, did not receive a timely response from the upstream server.
|
||||
/// Corresponds to HTTP status code 504 Gateway Timeout.
|
||||
/// </summary>
|
||||
public static Result<T> GatewayTimeout(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.GatewayTimeout);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server does not support the HTTP protocol version used in the request.
|
||||
/// Corresponds to HTTP status code 505 HTTP Version Not Supported.
|
||||
/// </summary>
|
||||
public static Result<T> HttpVersionNotSupported(T? value, string message) =>
|
||||
HttpVersionNotSupported(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server does not support the HTTP protocol version used in the request.
|
||||
/// Corresponds to HTTP status code 505 HTTP Version Not Supported.
|
||||
/// </summary>
|
||||
public static Result<T> HttpVersionNotSupported(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.HttpVersionNotSupported);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.
|
||||
/// Corresponds to HTTP status code 506 Variant Also Negotiates.
|
||||
/// </summary>
|
||||
public static Result<T> VariantAlsoNegotiates(T? value, string message) =>
|
||||
VariantAlsoNegotiates(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.
|
||||
/// Corresponds to HTTP status code 506 Variant Also Negotiates.
|
||||
/// </summary>
|
||||
public static Result<T> VariantAlsoNegotiates(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.VariantAlsoNegotiates);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server is unable to store the representation needed to complete the request.
|
||||
/// Corresponds to HTTP status code 507 Insufficient Storage.
|
||||
/// </summary>
|
||||
public static Result<T> InsufficientStorage(T? value, string message) =>
|
||||
InsufficientStorage(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server is unable to store the representation needed to complete the request.
|
||||
/// Corresponds to HTTP status code 507 Insufficient Storage.
|
||||
/// </summary>
|
||||
public static Result<T> InsufficientStorage(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.InsufficientStorage);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server detected an infinite loop while processing a request with depth: infinity. Usually encountered in WebDAV scenarios.
|
||||
/// Corresponds to HTTP status code 508 Loop Detected.
|
||||
/// </summary>
|
||||
public static Result<T> LoopDetected(T? value, string message) =>
|
||||
LoopDetected(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the server detected an infinite loop while processing a request with depth: infinity. Usually encountered in WebDAV scenarios.
|
||||
/// Corresponds to HTTP status code 508 Loop Detected.
|
||||
/// </summary>
|
||||
public static Result<T> LoopDetected(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.LoopDetected);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating further extensions to the request are required for the server to fulfill it.
|
||||
/// Corresponds to HTTP status code 510 Not Extended.
|
||||
/// </summary>
|
||||
public static Result<T> NotExtended(T? value, string message) =>
|
||||
NotExtended(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating further extensions to the request are required for the server to fulfill it.
|
||||
/// Corresponds to HTTP status code 510 Not Extended.
|
||||
/// </summary>
|
||||
public static Result<T> NotExtended(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.NotExtended);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the client needs to authenticate to gain network access.
|
||||
/// Corresponds to HTTP status code 511 Network Authentication Required.
|
||||
/// </summary>
|
||||
public static Result<T> NetworkAuthenticationRequired(T? value, string message) =>
|
||||
NetworkAuthenticationRequired(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the client needs to authenticate to gain network access.
|
||||
/// Corresponds to HTTP status code 511 Network Authentication Required.
|
||||
/// </summary>
|
||||
public static Result<T> NetworkAuthenticationRequired(T? value, List<string> messages) {
|
||||
return new Result<T>(value, false, messages, HttpStatusCode.NetworkAuthenticationRequired);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,169 +1,309 @@
|
||||
using System.Net;
|
||||
|
||||
namespace MaksIT.Results {
|
||||
|
||||
public partial class Result {
|
||||
namespace MaksIT.Results;
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server returned the requested data.
|
||||
/// Corresponds to HTTP status code 200 OK.
|
||||
/// </summary>
|
||||
public static Result Ok(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.OK);
|
||||
}
|
||||
public partial class Result {
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and a new resource was created.
|
||||
/// Corresponds to HTTP status code 201 Created.
|
||||
/// </summary>
|
||||
public static Result Created(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.Created);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server returned the requested data.
|
||||
/// Corresponds to HTTP status code 200 OK.
|
||||
/// </summary>
|
||||
public static Result Ok(string message) =>
|
||||
Ok(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request has been accepted for processing, but the processing is not yet complete.
|
||||
/// Corresponds to HTTP status code 202 Accepted.
|
||||
/// </summary>
|
||||
public static Result Accepted(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.Accepted);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful but the response contains metadata from a source other than the origin server.
|
||||
/// Corresponds to HTTP status code 203 Non-Authoritative Information.
|
||||
/// </summary>
|
||||
public static Result NonAuthoritativeInformation(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.NonAuthoritativeInformation);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful but there is no content to send in the response.
|
||||
/// Corresponds to HTTP status code 204 No Content.
|
||||
/// </summary>
|
||||
public static Result NoContent(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.NoContent);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful, but the user-agent should reset the document view that caused the request.
|
||||
/// Corresponds to HTTP status code 205 Reset Content.
|
||||
/// </summary>
|
||||
public static Result ResetContent(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.ResetContent);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server is delivering only part of the resource due to a range header sent by the client.
|
||||
/// Corresponds to HTTP status code 206 Partial Content.
|
||||
/// </summary>
|
||||
public static Result PartialContent(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.PartialContent);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the response contains multiple status codes, typically used for WebDAV.
|
||||
/// Corresponds to HTTP status code 207 Multi-Status.
|
||||
/// </summary>
|
||||
public static Result MultiStatus(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.MultiStatus);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the information has already been reported in a previous response.
|
||||
/// Corresponds to HTTP status code 208 Already Reported.
|
||||
/// </summary>
|
||||
public static Result AlreadyReported(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), HttpStatusCode.AlreadyReported);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server fulfilled the request for the resource using the delta encoding method.
|
||||
/// Corresponds to HTTP status code 226 IM Used.
|
||||
/// </summary>
|
||||
public static Result IMUsed(params string[] messages) {
|
||||
return new Result(true, new List<string>(messages), (HttpStatusCode)226); // 226 is the official status code for IM Used
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server returned the requested data.
|
||||
/// Corresponds to HTTP status code 200 OK.
|
||||
/// </summary>
|
||||
public static Result Ok(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.OK);
|
||||
}
|
||||
public partial class Result<T> : Result {
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server returned the requested data.
|
||||
/// Corresponds to HTTP status code 200 OK.
|
||||
/// </summary>
|
||||
public static Result<T> Ok(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.OK);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and a new resource was created.
|
||||
/// Corresponds to HTTP status code 201 Created.
|
||||
/// </summary>
|
||||
public static Result Created(string message) =>
|
||||
Created(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and a new resource was created.
|
||||
/// Corresponds to HTTP status code 201 Created.
|
||||
/// </summary>
|
||||
public static Result<T> Created(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.Created);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and a new resource was created.
|
||||
/// Corresponds to HTTP status code 201 Created.
|
||||
/// </summary>
|
||||
public static Result Created(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.Created);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request has been accepted for processing, but the processing is not yet complete.
|
||||
/// Corresponds to HTTP status code 202 Accepted.
|
||||
/// </summary>
|
||||
public static Result<T> Accepted(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.Accepted);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request has been accepted for processing, but the processing is not yet complete.
|
||||
/// Corresponds to HTTP status code 202 Accepted.
|
||||
/// </summary>
|
||||
public static Result Accepted(string message) =>
|
||||
Accepted(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful but the response contains metadata from a source other than the origin server.
|
||||
/// Corresponds to HTTP status code 203 Non-Authoritative Information.
|
||||
/// </summary>
|
||||
public static Result<T> NonAuthoritativeInformation(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.NonAuthoritativeInformation);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request has been accepted for processing, but the processing is not yet complete.
|
||||
/// Corresponds to HTTP status code 202 Accepted.
|
||||
/// </summary>
|
||||
public static Result Accepted(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.Accepted);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful but there is no content to send in the response.
|
||||
/// Corresponds to HTTP status code 204 No Content.
|
||||
/// </summary>
|
||||
public static Result<T> NoContent(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.NoContent);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful but the response contains metadata from a source other than the origin server.
|
||||
/// Corresponds to HTTP status code 203 Non-Authoritative Information.
|
||||
/// </summary>
|
||||
public static Result NonAuthoritativeInformation(string message) =>
|
||||
NonAuthoritativeInformation(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful, but the user-agent should reset the document view that caused the request.
|
||||
/// Corresponds to HTTP status code 205 Reset Content.
|
||||
/// </summary>
|
||||
public static Result<T> ResetContent(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.ResetContent);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful but the response contains metadata from a source other than the origin server.
|
||||
/// Corresponds to HTTP status code 203 Non-Authoritative Information.
|
||||
/// </summary>
|
||||
public static Result NonAuthoritativeInformation(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.NonAuthoritativeInformation);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server is delivering only part of the resource due to a range header sent by the client.
|
||||
/// Corresponds to HTTP status code 206 Partial Content.
|
||||
/// </summary>
|
||||
public static Result<T> PartialContent(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.PartialContent);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful but there is no content to send in the response.
|
||||
/// Corresponds to HTTP status code 204 No Content.
|
||||
/// </summary>
|
||||
public static Result NoContent(string message) =>
|
||||
ResetContent(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the response contains multiple status codes, typically used for WebDAV.
|
||||
/// Corresponds to HTTP status code 207 Multi-Status.
|
||||
/// </summary>
|
||||
public static Result<T> MultiStatus(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.MultiStatus);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful but there is no content to send in the response.
|
||||
/// Corresponds to HTTP status code 204 No Content.
|
||||
/// </summary>
|
||||
public static Result NoContent(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.NoContent);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the information has already been reported in a previous response.
|
||||
/// Corresponds to HTTP status code 208 Already Reported.
|
||||
/// </summary>
|
||||
public static Result<T> AlreadyReported(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), HttpStatusCode.AlreadyReported);
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful, but the user-agent should reset the document view that caused the request.
|
||||
/// Corresponds to HTTP status code 205 Reset Content.
|
||||
/// </summary>
|
||||
public static Result ResetContent(string message) =>
|
||||
ResetContent(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server fulfilled the request for the resource using the delta encoding method.
|
||||
/// Corresponds to HTTP status code 226 IM Used.
|
||||
/// </summary>
|
||||
public static Result<T> IMUsed(T? value, params string[] messages) {
|
||||
return new Result<T>(value, true, new List<string>(messages), (HttpStatusCode)226); // 226 is the official status code for IM Used
|
||||
}
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful, but the user-agent should reset the document view that caused the request.
|
||||
/// Corresponds to HTTP status code 205 Reset Content.
|
||||
/// </summary>
|
||||
public static Result ResetContent(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.ResetContent);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server is delivering only part of the resource due to a range header sent by the client.
|
||||
/// Corresponds to HTTP status code 206 Partial Content.
|
||||
/// </summary>
|
||||
public static Result PartialContent(string message) =>
|
||||
PartialContent(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server is delivering only part of the resource due to a range header sent by the client.
|
||||
/// Corresponds to HTTP status code 206 Partial Content.
|
||||
/// </summary>
|
||||
public static Result PartialContent(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.PartialContent);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the response contains multiple status codes, typically used for WebDAV.
|
||||
/// Corresponds to HTTP status code 207 Multi-Status.
|
||||
/// </summary>
|
||||
public static Result MultiStatus(string message) =>
|
||||
MultiStatus(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the response contains multiple status codes, typically used for WebDAV.
|
||||
/// Corresponds to HTTP status code 207 Multi-Status.
|
||||
/// </summary>
|
||||
public static Result MultiStatus(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.MultiStatus);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the information has already been reported in a previous response.
|
||||
/// Corresponds to HTTP status code 208 Already Reported.
|
||||
/// </summary>
|
||||
public static Result AlreadyReported(string message) =>
|
||||
AlreadyReported(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the information has already been reported in a previous response.
|
||||
/// Corresponds to HTTP status code 208 Already Reported.
|
||||
/// </summary>
|
||||
public static Result AlreadyReported(List<string> messages) {
|
||||
return new Result(true, messages, HttpStatusCode.AlreadyReported);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server fulfilled the request for the resource using the delta encoding method.
|
||||
/// Corresponds to HTTP status code 226 IM Used.
|
||||
/// </summary>
|
||||
public static Result IMUsed(string message) =>
|
||||
IMUsed(new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server fulfilled the request for the resource using the delta encoding method.
|
||||
/// Corresponds to HTTP status code 226 IM Used.
|
||||
/// </summary>
|
||||
public static Result IMUsed(List<string> messages) {
|
||||
return new Result(true, messages, (HttpStatusCode)226); // 226 is the official status code for IM Used
|
||||
}
|
||||
}
|
||||
public partial class Result<T> : Result {
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server returned the requested data.
|
||||
/// Corresponds to HTTP status code 200 OK.
|
||||
/// </summary>
|
||||
public static Result<T> Ok(T? value, string message) =>
|
||||
Ok(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server returned the requested data.
|
||||
/// Corresponds to HTTP status code 200 OK.
|
||||
/// </summary>
|
||||
public static Result<T> Ok(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and a new resource was created.
|
||||
/// Corresponds to HTTP status code 201 Created.
|
||||
/// </summary>
|
||||
public static Result<T> Created(T? value, string message) =>
|
||||
Created(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and a new resource was created.
|
||||
/// Corresponds to HTTP status code 201 Created.
|
||||
/// </summary>
|
||||
public static Result<T> Created(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.Created);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request has been accepted for processing, but the processing is not yet complete.
|
||||
/// Corresponds to HTTP status code 202 Accepted.
|
||||
/// </summary>
|
||||
public static Result<T> Accepted(T? value, string message) =>
|
||||
Accepted(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request has been accepted for processing, but the processing is not yet complete.
|
||||
/// Corresponds to HTTP status code 202 Accepted.
|
||||
/// </summary>
|
||||
public static Result<T> Accepted(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.Accepted);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful but the response contains metadata from a source other than the origin server.
|
||||
/// Corresponds to HTTP status code 203 Non-Authoritative Information.
|
||||
/// </summary>
|
||||
public static Result<T> NonAuthoritativeInformation(T? value, string message) =>
|
||||
NonAuthoritativeInformation(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful but the response contains metadata from a source other than the origin server.
|
||||
/// Corresponds to HTTP status code 203 Non-Authoritative Information.
|
||||
/// </summary>
|
||||
public static Result<T> NonAuthoritativeInformation(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.NonAuthoritativeInformation);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful but there is no content to send in the response.
|
||||
/// Corresponds to HTTP status code 204 No Content.
|
||||
/// </summary>
|
||||
public static Result<T> NoContent(T? value, string message) =>
|
||||
NoContent(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful but there is no content to send in the response.
|
||||
/// Corresponds to HTTP status code 204 No Content.
|
||||
/// </summary>
|
||||
public static Result<T> NoContent(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.NoContent);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful, but the user-agent should reset the document view that caused the request.
|
||||
/// Corresponds to HTTP status code 205 Reset Content.
|
||||
/// </summary>
|
||||
public static Result<T> ResetContent(T? value, string message) =>
|
||||
ResetContent(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful, but the user-agent should reset the document view that caused the request.
|
||||
/// Corresponds to HTTP status code 205 Reset Content.
|
||||
/// </summary>
|
||||
public static Result<T> ResetContent(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.ResetContent);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server is delivering only part of the resource due to a range header sent by the client.
|
||||
/// Corresponds to HTTP status code 206 Partial Content.
|
||||
/// </summary>
|
||||
public static Result<T> PartialContent(T? value, string message) =>
|
||||
PartialContent(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server is delivering only part of the resource due to a range header sent by the client.
|
||||
/// Corresponds to HTTP status code 206 Partial Content.
|
||||
/// </summary>
|
||||
public static Result<T> PartialContent(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.PartialContent);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the response contains multiple status codes, typically used for WebDAV.
|
||||
/// Corresponds to HTTP status code 207 Multi-Status.
|
||||
/// </summary>
|
||||
public static Result<T> MultiStatus(T? value, string message) =>
|
||||
MultiStatus(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the response contains multiple status codes, typically used for WebDAV.
|
||||
/// Corresponds to HTTP status code 207 Multi-Status.
|
||||
/// </summary>
|
||||
public static Result<T> MultiStatus(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.MultiStatus);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the information has already been reported in a previous response.
|
||||
/// Corresponds to HTTP status code 208 Already Reported.
|
||||
/// </summary>
|
||||
public static Result<T> AlreadyReported(T? value, string message) =>
|
||||
AlreadyReported(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the information has already been reported in a previous response.
|
||||
/// Corresponds to HTTP status code 208 Already Reported.
|
||||
/// </summary>
|
||||
public static Result<T> AlreadyReported(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, HttpStatusCode.AlreadyReported);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server fulfilled the request for the resource using the delta encoding method.
|
||||
/// Corresponds to HTTP status code 226 IM Used.
|
||||
/// </summary>
|
||||
public static Result<T> IMUsed(T? value, string message) =>
|
||||
IMUsed(value, new List<string> { message });
|
||||
|
||||
/// <summary>
|
||||
/// Returns a result indicating the request was successful and the server fulfilled the request for the resource using the delta encoding method.
|
||||
/// Corresponds to HTTP status code 226 IM Used.
|
||||
/// </summary>
|
||||
public static Result<T> IMUsed(T? value, List<string> messages) {
|
||||
return new Result<T>(value, true, messages, (HttpStatusCode)226); // 226 is the official status code for IM Used
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,81 +1,88 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System.Net;
|
||||
|
||||
namespace MaksIT.Results {
|
||||
namespace MaksIT.Results;
|
||||
|
||||
public partial class Result {
|
||||
public bool IsSuccess { get; }
|
||||
public List<string> Messages { get; }
|
||||
public HttpStatusCode StatusCode { get; }
|
||||
public partial class Result {
|
||||
public bool IsSuccess { get; }
|
||||
public List<string> Messages { get; }
|
||||
public HttpStatusCode StatusCode { get; }
|
||||
|
||||
protected Result(bool isSuccess, List<string> messages, HttpStatusCode statusCode) {
|
||||
IsSuccess = isSuccess;
|
||||
Messages = messages ?? new List<string>();
|
||||
StatusCode = statusCode;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts the current Result{T} to a non-generic Result.
|
||||
/// </summary>
|
||||
/// <returns>A non-generic Result object.</returns>
|
||||
public Result ToResult() {
|
||||
return new Result(IsSuccess, Messages, StatusCode);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts the current Result to an IActionResult.
|
||||
/// </summary>
|
||||
/// <returns>IActionResult that represents the HTTP response.</returns>
|
||||
public virtual IActionResult ToActionResult() {
|
||||
if (IsSuccess) {
|
||||
return new StatusCodeResult((int)StatusCode);
|
||||
}
|
||||
else {
|
||||
var problemDetails = new ProblemDetails {
|
||||
Status = (int)StatusCode,
|
||||
Title = "An error occurred",
|
||||
Detail = string.Join("; ", Messages),
|
||||
Instance = null // You can customize the instance URI if needed
|
||||
};
|
||||
return new ObjectResult(problemDetails) { StatusCode = (int)StatusCode };
|
||||
}
|
||||
}
|
||||
protected Result(bool isSuccess, List<string> messages, HttpStatusCode statusCode) {
|
||||
IsSuccess = isSuccess;
|
||||
Messages = messages ?? new List<string>();
|
||||
StatusCode = statusCode;
|
||||
}
|
||||
|
||||
public partial class Result<T> : Result {
|
||||
public T? Value { get; }
|
||||
/// <summary>
|
||||
/// Converts the current Result{T} to a non-generic Result.
|
||||
/// </summary>
|
||||
/// <returns>A non-generic Result object.</returns>
|
||||
public Result ToResult() {
|
||||
return new Result(IsSuccess, Messages, StatusCode);
|
||||
}
|
||||
|
||||
protected Result(T? value, bool isSuccess, List<string> messages, HttpStatusCode statusCode)
|
||||
: base(isSuccess, messages, statusCode) {
|
||||
Value = value;
|
||||
/// <summary>
|
||||
/// Converts this Result into a Result of another type while retaining the same success status, messages, and status code.
|
||||
/// </summary>
|
||||
/// <typeparam name="U">The target type for the Result.</typeparam>
|
||||
/// <param name="value">The new value of type U for the converted Result.</param>
|
||||
/// <returns>A Result of type U.</returns>
|
||||
public Result<U?> ToResultOfType<U>(U? value) {
|
||||
return new Result<U?>(value, IsSuccess, Messages, StatusCode);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts the current Result to an IActionResult.
|
||||
/// </summary>
|
||||
/// <returns>IActionResult that represents the HTTP response.</returns>
|
||||
public virtual IActionResult ToActionResult() {
|
||||
if (IsSuccess) {
|
||||
return new StatusCodeResult((int)StatusCode);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new <see cref="Result{U}"/> by applying a transformation function to the current value.
|
||||
/// </summary>
|
||||
/// <typeparam name="U">The type of the new value.</typeparam>
|
||||
/// <param name="newValueFunc">A function that transforms the current value to the new value, which can be null.</param>
|
||||
/// <returns>A new <see cref="Result{U}"/> object containing the transformed value, along with the original success status, messages, and status code.</returns>
|
||||
public Result<U?> WithNewValue<U>(Func<T?, U?> newValueFunc) {
|
||||
return new Result<U?>(newValueFunc(Value), IsSuccess, Messages, StatusCode);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Converts the current Result<T> to an IActionResult.
|
||||
/// </summary>
|
||||
/// <returns>IActionResult that represents the HTTP response.</returns>
|
||||
public override IActionResult ToActionResult() {
|
||||
if (IsSuccess) {
|
||||
if (Value is not null) {
|
||||
return new ObjectResult(Value) { StatusCode = (int)StatusCode };
|
||||
}
|
||||
return base.ToActionResult();
|
||||
}
|
||||
else {
|
||||
return base.ToActionResult();
|
||||
}
|
||||
else {
|
||||
var problemDetails = new ProblemDetails {
|
||||
Status = (int)StatusCode,
|
||||
Title = "An error occurred",
|
||||
Detail = string.Join("; ", Messages),
|
||||
Instance = null // You can customize the instance URI if needed
|
||||
};
|
||||
return new ObjectResult(problemDetails) { StatusCode = (int)StatusCode };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public partial class Result<T> : Result {
|
||||
public T? Value { get; }
|
||||
|
||||
public Result(T? value, bool isSuccess, List<string> messages, HttpStatusCode statusCode)
|
||||
: base(isSuccess, messages, statusCode) {
|
||||
Value = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts this Result<T> to a Result<U> while retaining success status, messages, and status code.
|
||||
/// </summary>
|
||||
/// <typeparam name="U">The target type for the Result.</typeparam>
|
||||
/// <param name="newValueFunc">A function to transform the current value to a new value of type U.</param>
|
||||
/// <returns>A Result<U> containing the transformed value.</returns>
|
||||
public Result<U?> ToResultOfType<U>(Func<T?, U?> newValueFunc) {
|
||||
return new Result<U?>(newValueFunc(Value), IsSuccess, Messages, StatusCode);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts the current Result<T> to an IActionResult.
|
||||
/// </summary>
|
||||
/// <returns>IActionResult that represents the HTTP response.</returns>
|
||||
public override IActionResult ToActionResult() {
|
||||
if (IsSuccess) {
|
||||
if (Value is not null) {
|
||||
return new ObjectResult(Value) { StatusCode = (int)StatusCode };
|
||||
}
|
||||
return base.ToActionResult();
|
||||
}
|
||||
else {
|
||||
return base.ToActionResult();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user