using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System.Runtime.Serialization;
namespace LiveForum.Code.Base
{
///
/// 接口和服务调用基础响应类
///
///
[DataContract]
[Serializable]
public record BaseResponse
{
///
/// 功能执行返回代码
///
[DataMember]
public ResponseCode Code { get; set; }
///
/// 消息
///
[DataMember]
public string Message { get; set; }
///
/// 数据
///
[DataMember]
public T? Data { get; set; }
///
/// 构造函数
///
public BaseResponse()
{
Code = 0;
Message = "";
}
///
/// 构造函数
///
public BaseResponse(T? data = default(T))
{
Code = ResponseCode.Success;
Data = data;
}
///
/// 构造函数
///
public BaseResponse(string message, T? data = default(T))
{
Code = ResponseCode.Success;
Message = message;
Data = data;
}
///
/// 构造函数
///
public BaseResponse(ResponseCode code, string message = "", T? data = default(T))
{
Code = code;
Message = message;
Data = data;
}
///
///
///
///
public override string ToString()
{
var settings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
return JsonConvert.SerializeObject(this, settings);
}
}
///
/// 返回值是bool类型的响应类
///
public record BaseResponseBool : BaseResponse
{
}
public record BaseResponseLong : BaseResponse
{
}
public record BaseResponseInt : BaseResponse
{
}
public record BaseResponseList : BaseResponse>
{
public BaseResponseList() { }
public BaseResponseList(List data) : base(data) { }
public BaseResponseList(string message, List data) : base(message, data) { }
public BaseResponseList(ResponseCode code, string message = "", List data = null) : base(code, message, data) { }
}
}