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);
HttpClient
classe?
HttpResponseMessage
por exemplo
HttpResponseMessage.IsSuccessStatusCode
(veja minha resposta), que é exatamente igual à sua primeira abordagem, e torná-la um método de extensão no HttpStatusCode
tipo.
int code = (int)Response.StatusCode
partir daí, você precisará criar seu próprioEnum
cheque aqui para o exemplo de trabalho stackoverflow.com/questions/1330856/…