using System.Net; namespace MeWeb.Shared; public class WebResult where T : class { public T Data { get; set; } public ViewRefusal Refusal { get; private set; } public int StatusCode { get; private set; } = (int)HttpStatusCode.OK; public bool IsInvalid => Refusal is not null; public bool IsValid => Refusal is null; public WebResult Invalidate(string reason, int statusCode = (int)HttpStatusCode.BadRequest, int retryAfterSeconds = 0) => Invalidate(new ViewRefusal { Reason = reason, RetryAfterSeconds = retryAfterSeconds }, statusCode); public WebResult Invalidate(ViewRefusal refusal, int statusCode = (int)HttpStatusCode.BadRequest) { Data = null; Refusal = refusal; StatusCode = statusCode; return this; } }