using System.Net;
using System.Net.Http;
using System.Text;
using System.Web.Http.ModelBinding;
using Newtonsoft.Json;
using Jp.ApiCamService.Dtos;
using Pcb.Common.Enum;
namespace Jp.ApiCam.Infrastructures
{
///
/// 响应消息帮助类
///
public class AppResponseMessageHelper
{
///
/// 成功消息
///
public static HttpResponseMessage OK(EnumApiStatusCode code, string message = "", object data = null)
{
return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = Content(code, message, data) };
}
///
/// 成功消息
///
public static HttpResponseMessage OK(object dto)
{
return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = Content(dto) };
}
///
/// 逻辑错误
///
///
///
///
public static HttpResponseMessage Fail(EnumApiStatusCode code, string message = "", object data = null)
{
return new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, Content = Content(code, message, data) };
}
///
/// 逻辑错误
///
///
///
public static HttpResponseMessage Fail(EnumApiStatusCode code, ModelStateDictionary modelState)
{
var error = modelState.ErrorInfo();
return new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, Content = Content(code, error.Item1, error.Item2) };
}
///
/// 逻辑错误
///
public static HttpResponseMessage Fail(object dto)
{
return new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, Content = Content(dto) };
}
///
/// 返回消息
///
///
///
public static HttpResponseMessage Response(ResponseInfoDto dto)
{
return new HttpResponseMessage { StatusCode = dto.code == 1 ? HttpStatusCode.OK : HttpStatusCode.BadRequest, Content = Content(dto) };
}
///
/// 内部错误
///
///
///
///
public static HttpResponseMessage Error(EnumApiStatusCode code, string message = "", object data = null)
{
return new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = Content(code, message, data) };
}
private static StringContent Content(EnumApiStatusCode code, string message = "", object data = null)
{
return new StringContent(JsonConvert.SerializeObject(new { code = code.GetHashCode(), message, data }), Encoding.UTF8);
}
private static StringContent Content(object dto)
{
return new StringContent(JsonConvert.SerializeObject(dto), Encoding.UTF8);
}
}
}