using Apewer;
using System;
namespace Apewer.Source
{
/// 数据库引擎的执行结果。
public class Execute : IExecute, IToJson
{
private bool _success = false;
private string _message = "";
private int _rows = 0;
/// 语句执行成功。
public bool Success { get => _success; }
/// 受影响的行数。
public int Rows { get => _rows; }
/// 消息。
public string Message { get => _message; }
/// 创建实例。
public Execute(bool success, string message)
{
_success = false;
_message = message;
}
/// 创建实例。
public Execute(bool success, int rows)
{
_success = success;
_rows = rows;
}
/// 创建实例,Exception 为 NULL 时候成功,非 NULL 时为失败。
public Execute(Exception exception)
{
_success = exception == null;
_message = RuntimeUtility.Message(exception);
}
/// 从 到 的隐式转换,判断 执行成功。
public static implicit operator bool(Execute instance)
{
return instance != null && instance.Success;
}
#region IToJson
/// 转换为 Json 对象。
public Json ToJson()
{
var jsonObject = Json.NewObject();
jsonObject.SetProperty("success", _success);
jsonObject.SetProperty("message", _message);
jsonObject.SetProperty("rows", _rows);
return jsonObject;
}
#endregion
}
}