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); } } }