BaseEquipmentExecute.cs 2.33 KB
using HHECS.BllModel;
using HHECS.Model.Entities;
using System;

namespace HHECS.Executor.EquipmentHandler
{
    /// <summary>
    /// 设备执行基类
    /// </summary>
    public abstract class BaseEquipmentExecute
    {
        /// <summary>
        /// 设备执行时,触发日志记录
        /// </summary>
        public event Action<object, EquipmentExecuteLogEventArgs> EquipmentExecuteLog;

        /// <summary>
        /// 设备执行时,触发任务流程记录,当任务号为0时,说明无任务执行,可能为行走任务
        /// </summary>
        public event Action<object, TaskRecordEventArgs> TaskRecord;

        /// <summary>
        /// 当设备记录日志时触发
        /// 请勿修改task的属性
        /// </summary>
        /// <param name="equipmentExecuteLogEventArgs"></param>
        //protected void OnEquipmentExecuteLog(BllResultCode bllResultCode, Equipment equipment,  string description, string errorCode = "")
        //{
        //    EquipmentExecuteLog?.Invoke(this, new EquipmentExecuteLogEventArgs(bllResultCode, equipment, description, errorCode));
        //}

        /// <summary>
        /// 当设备记录日志时触发
        /// </summary>
        /// <param name="equipmentExecuteLogEventArgs"></param>
        protected void OnEquipmentExecuteLog(BllResultCode bllResultCode, Equipment equipment, string description, Exception exception, string errorCode = "")
        {
            EquipmentExecuteLog?.Invoke(this, new EquipmentExecuteLogEventArgs(bllResultCode, equipment, exception, description, errorCode));
        }

        /// <summary>
        /// 当设备记录日志时触发
        /// </summary>
        /// <param name="equipmentExecuteLogEventArgs"></param>
        protected void OnEquipmentExecuteLog(BllResultCode bllResultCode, Equipment equipment, string description, string errorCode = "")
        {
            EquipmentExecuteLog?.Invoke(this, new EquipmentExecuteLogEventArgs(bllResultCode, equipment, description, errorCode));
        }

        /// <summary>
        /// 当触发任务流转记录时
        /// </summary>
        protected void OnTaskRecord(Equipment equipment, int taskId, string description, BllResult result = null)
        {
            TaskRecord?.Invoke(this, new TaskRecordEventArgs(equipment, taskId, description, result));
        }
    }
}