using System;
using SqlSugar;
using System.Linq;
using System.ComponentModel;
using System.Collections.Generic;
using Tiger.Model.Extensions;
namespace Tiger.Model
{
///
/// 实体:作业列表
///
[Description("Primary:ID")]
[Serializable]
[SugarTable("TSK_JOB")]
public class TSK_JOB : DbEntityWithAuth
{
#region 构造函数
///
/// 实体:作业列表
///
public TSK_JOB()
{ }
#endregion 构造函数
#region 公共属性
///
/// 作业名称
///
public string JobName { get; set; }
///
/// 作业组名称
///
public string GroupName { get; set; }
///
/// 作业处理程序类型,存储的是类型的 FuLIName
///
public string JobType { get; set; }
///
/// 作业处理程序类型所在程序集,存储的是程序集 Name
///
public string AssemblyName { get; set; }
///
/// 描述信息
///
public string Description { get; set; }
///
/// 作业执行方式,如果设置为 false,那么使用串行执行,否则并行执行
///
public bool Concurrent { get; set; } = true;
///
/// 是否扫描 IJob 实现类 [Trigger] 特性触发器
///
public bool IncludeAnnotations { get; set; } = false;
///
/// 作业信息额外数据,由 Dictionary 序列化成字符串存储
///
public string Properties { get; set; } = "{}";
///
/// 作业更新时间
///
public DateTime UpdatedTime { get; set; } = DateTime.MinValue;
///
/// 备注
///
public string Remark { get; set; }
///
/// 是否执行
///
public int? ISRUNNING { get; set; }
///
/// 最后执行时间
///
public DateTime? LASTRUNTIME { get; set; }
#endregion 公共属性
#region 虚拟属性
//例子
[SugarColumn(IsIgnore = true)]
public string Status => Triggers?.FirstOrDefault()?.StatusStr + "," + Triggers?.FirstOrDefault()?.StatusStr.GetEnum().GetDesc() ?? TSK_TRIG.Statuss.Ready.GetName() + "," + TSK_TRIG.Statuss.Ready.GetDesc();
//[SugarColumn(IsIgnore = true)]
//public int Period => Convert.ToInt32(Triggers?.FirstOrDefault()?.Args ?? $"2");
[SugarColumn(IsIgnore = true)]
public int uPeriod { get; set; }
#endregion 虚拟属性
#region 外键属性
/*例子
//一对一外键导航
[Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是TSK_JOB类里面的外键ID字段
public ClassA ClassA { get; set; } //不能赋值只能是null
//一对多外键导航
[Navigate(NavigateType.OneToMany, nameof(ClassA.TSK_JOBId))]//ClassA表中的TSK_JOBId
public List ClassAList { get; set; }//注意禁止给books手动赋值
//多对多外键导航
[Navigate(typeof(MappingClass), nameof(MappingClass.TSK_JOBId), nameof(MappingClass.ClassAId))]//注意顺序
public List ClassAList { get; set; } //只能是null不能赋默认值
*/
[Navigate(NavigateType.OneToMany, nameof(TSK_TRIG.JobId))]//ClassA表中的TSK_JOBId
public List TriggersWithGhost { get; set; }//注意禁止手动赋值,只能是null
[SugarColumn(IsIgnore = true)]
public List Triggers => TriggersWithGhost?.Where(q => !q.GHOST_ROW).ToList();
#endregion 外键属性
#region 枚举变量
/*例子
public enum FieldNames
{
[Description("枚举描述0")]
Enum0,
[Description("枚举描述1")]
Enum1,
}
*/
#endregion 枚举变量
}//endClass
public class TskJobParam
{
///
/// 作业名称
///
public string JobName { get; set; }
///
/// 周期
///
public int Period { get; set; }
///
/// 备注
///
public string Remark { get; set; }
}
public class FluentJobParam: TskJobParam
{
public string AssemblyName { get; set; }
public string DataType { get; set; }
///
/// 参数
///
public TrigArgs Args { get; set; }
}
}