MissionInfo.cs 2.4 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace DeviceLibrary.manager
{
    /// <summary>
    /// 治具呼叫信息
    /// </summary>
    public class MissionInfo
    {
        /// <summary>
        /// 呼叫时间
        /// </summary>
        public DateTime RTime { get; set; }
        /// <summary>
        /// 治具类型
        /// </summary>
        public FixType Type { get; set; }
        /// <summary>
        /// 目的地名称
        /// </summary>
        public string Target { get; set; }
        /// <summary>
        /// 任务类型
        /// </summary>
        public MissionType MissionType { get; set; }
        /// <summary>
        /// 任务是否执行
        /// </summary>
        public bool On { get; set; } = true;
        public MissionInfo(string target, FixType fixType, MissionType missionType)
        {
            RTime = DateTime.Now;
            Type = fixType;
            Target = target;
            MissionType = missionType;
        }
        public MissionInfo() { }
        public override string ToString()
        {
            PropertyInfo[] props = this.GetType().GetProperties();
            string tmp = "";
            foreach (PropertyInfo item in props)
            {
                tmp += string.Format("{0}:{1} ", item.Name, item.GetValue(this));
            }
            return tmp;
        }
        public string ToTxt()
        {
            return $" [Target={Target} Type={Type.ToString()}] ";
        }
        public override bool Equals(object obj)
        {
            if (obj is MissionInfo)
            {
                MissionInfo fixMissionInfo = obj as MissionInfo;
                if (this.Target.Equals(fixMissionInfo.Target))
                    return true;
                else
                    return false;
            }
            else
                return false;
        }
        public MissionInfo ToCopy()
        {
            PropertyInfo[] propertyInfos = this.GetType().GetProperties();
            MissionInfo missionInfo = new MissionInfo();
            foreach (PropertyInfo item in propertyInfos)
            {
                item.SetValue(missionInfo, item);
            }
            return missionInfo;
        }
    }

    public enum FixType
    {
        None
    }
    public enum MissionType
    {
        Warehouse,
        Line
    }
}