Vamos supor que eu tenha a seguinte variável:
System.Net.HttpStatusCode status = System.Net.HttpStatusCode.OK;
Como posso verificar se este é um código de status de sucesso ou de falha?
Por exemplo, posso fazer o seguinte:
int code = (int)status;
if(code >= 200 && code < 300) {
//Success
}
Também posso ter algum tipo de lista branca:
HttpStatusCode[] successStatus = new HttpStatusCode[] {
HttpStatusCode.OK,
HttpStatusCode.Created,
HttpStatusCode.Accepted,
HttpStatusCode.NonAuthoritativeInformation,
HttpStatusCode.NoContent,
HttpStatusCode.ResetContent,
HttpStatusCode.PartialContent
};
if(successStatus.Contains(status)) //LINQ
{
//Success
}
Nenhuma dessas alternativas me convence, e eu esperava por uma classe ou método .NET que pudesse fazer esse trabalho para mim, como:
bool isSuccess = HttpUtilities.IsSuccess(status);
HttpClientclasse?
HttpResponseMessagepor exemplo
HttpResponseMessage.IsSuccessStatusCode(veja minha resposta), que é exatamente igual à sua primeira abordagem, e torná-la um método de extensão no HttpStatusCodetipo.
int code = (int)Response.StatusCodepartir daí, você precisará criar seu próprioEnumcheque aqui para o exemplo de trabalho stackoverflow.com/questions/1330856/…