using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HH.WMS.Client { public enum ResultStatus { Error = 0, Success = 1, Warning = 2 } /// /// 返回消息固定格式 /// public class OperateResult { public OperateResult() { } public OperateResult(ResultStatus status, string msg, bool success, int affectedRows = 0) { Status = status; Msg = msg; Success = success; AffectedRows = affectedRows; } public OperateResult(ResultStatus status, string msg, object data, bool success) { Status = status; Msg = msg; Data = data; Success = success; } public ResultStatus Status { get; set; } public string Code { get; set; } public string Msg { get; set; } public object Data { get; set; } public int AffectedRows { get; set; } public bool Success { get; set; } public static OperateResult Succeed(string msg = "succeed") { return new OperateResult(ResultStatus.Success, msg, true); } public static OperateResult Succeed(int affectedRows) { return new OperateResult(ResultStatus.Success, "succeed", true, affectedRows); } public static OperateResult Succeed(string msg, object data) { return new OperateResult(ResultStatus.Success, msg, data, true); } public static OperateResult Error(string msg = "error") { return new OperateResult(ResultStatus.Error, msg, false); } public static OperateResult Error(string msg, object data) { return new OperateResult(ResultStatus.Error, msg, data, false); } public static OperateResult Warning(string msg = "warning") { return new OperateResult(ResultStatus.Warning, msg, false); } } public static class OperateResultExtensions { public static T GetData(this OperateResult result) where T : class { if (result.Data == null) return default(T); if (result.Data.GetType() == typeof(JObject) || result.Data.GetType() == typeof(JArray) || result.Data.GetType() == typeof(string)) { string data = result.Data.ToString(); IsoDateTimeConverter timeFormat = new IsoDateTimeConverter(); timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; return JsonConvert.DeserializeObject(data, timeFormat); } return result.Data as T; } } }