using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using DDUtilityApp.SECS;
using JWH.DATA;

namespace DDUtilityApp.LOGPARSER.DATA
{

    public class StandardCollection : List<StandardData>
    {
    }

    /// <summary>
    /// 
    /// </summary>
    public class StandardData : DataTableBase
    {

        public delegate void onBodyParser(StandardData sender);

        [Browsable(false)]
        public int LineNumber { get; set; }

        public DateTime DateTime { get; set; }

        public string Level { get; set; }

        public string Server { get; set; }

        public string Service { get; set; }

        public string Type { get; set; }

        public string MessageName { get; set; }

        public string Return { get; set; }

        public string Value { get; set; }

        public string EquipmentID { get; set; }

        public string PortID { get; set; }

        public string CarrierID { get; set; }

        public string LotID { get; set; }

        public string ModuleID { get; set; }

        public string HostPanelID { get; set; }

        public string PanelID { get; set; }

        public string PanelQty { get; set; }

        public string TID { get; set; }

        public string SystemByte { get; set; }

        public string Column1 { get; set; }

        public string Column2 { get; set; }

        public string Column3 { get; set; }

        public string Column4 { get; set; }

        public string Column5 { get; set; }

        [Browsable(false)]
        public StringBuilder Body { get; set; } = new StringBuilder();

        [Browsable(false)]
        public SECSItem SECSItem { get; set; } = null;

        [Browsable(false)]
        public onBodyParser BodyParser { get; set; }

        public void BodyParsing()
        {
            if (this.BodyParser == null) return;

            this.BodyParser.DynamicInvoke(this);
        }

        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();
            sb.Append($"{this.Server} {this.MessageName}");

            return sb.ToString();
        }

    }

}
