using System;
using System.Linq;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;

namespace INT_PT002.DataStore
{
    public class LeakData
    {
        #region Field
        private Collection<Define.E_ProcessStatus> m_CollProcessStatus;
        private Collection<Define.E_JudgmentStatus> m_CollJudgment;
        private Collection<DispData> m_CollDispData;
        private Collection<DiffData> m_CollDiffData;
        private Collection<PressureData> m_CollPresData;
        #endregion

        #region Constructor
        public LeakData(int column)
        {
            this.Initialize(column);
        }
        #endregion

        #region Property
        /// <summary>
        /// 진행 상태
        /// </summary>
        public Collection<Define.E_ProcessStatus> CollProcessStatus
        {
            get { return this.m_CollProcessStatus; }
            set { this.m_CollProcessStatus = value; }
        }
        /// <summary>
        /// 판정 결과
        /// </summary>
        public Collection<Define.E_JudgmentStatus> CollJudgment
        {
            get { return this.m_CollJudgment; }
            set { this.m_CollJudgment = value; }
        }
        /// <summary>
        /// 변위센서 데이터 
        /// </summary>
        public Collection<DispData> CollDispData
        {
            get { return this.m_CollDispData; }
            set { this.m_CollDispData = value; }
        }
        /// <summary>
        /// 차압센서 데이터
        /// </summary>
        public Collection<DiffData> CollDiffData
        {
            get { return this.m_CollDiffData; }
            set { this.m_CollDiffData = value; }
        }
        /// <summary>
        /// 압력센서 데이터
        /// </summary>
        public Collection<PressureData> CollPresData
        {
            get { return this.m_CollPresData; }
            set { this.m_CollPresData = value; }
        }
        #endregion

        #region Method
        private void Initialize(int column)
        {
            this.CollProcessStatus = new Collection<Define.E_ProcessStatus>();
            this.CollJudgment = new Collection<Define.E_JudgmentStatus>();
            this.CollDispData = new Collection<DispData>();
            this.CollDiffData = new Collection<DiffData>();
            this.CollPresData = new Collection<PressureData>();

            for (int i = 0; i < column; i++)
            {
                this.CollProcessStatus.Add(Define.E_ProcessStatus._0_None);
                this.CollJudgment.Add(Define.E_JudgmentStatus.None);
                this.CollDispData.Add(new DispData());
                this.CollDiffData.Add(new DiffData());
                this.CollPresData.Add(new PressureData());
            }
        }
        #endregion
    }

    public class LeakData1
    {
        #region Field
        private Define.E_ProcessStatus m_ProcessStatus;
        private Define.E_JudgmentStatus m_Judgment;
        private DispData m_DispData;
        private DiffData m_DiffData;
        private PressureData m_PresData;
        #endregion

        #region Constructor
           public LeakData1()
        {
            this.Initialize();
        }
        #endregion

        #region Property
        /// <summary>
        /// 진행 상태
        /// </summary>
        public Define.E_ProcessStatus ProcessStatus
        {
            get { return this.m_ProcessStatus; }
            set { this.m_ProcessStatus = value; }
        }
        /// <summary>
        /// 판정 결과
        /// </summary>
        public Define.E_JudgmentStatus Judgment
        {
            get { return this.m_Judgment; }
            set { this.m_Judgment = value; }
        }
        /// <summary>
        /// 변위센서 데이터 
        /// </summary>
        public DispData DispData
        {
            get { return this.m_DispData; }
            set { this.m_DispData = value; }
        }
        /// <summary>
        /// 차압센서 데이터
        /// </summary>
        public DiffData DiffData
        {
            get { return this.m_DiffData; }
            set { this.m_DiffData = value; }
        }
        /// <summary>
        /// 압력센서 데이터
        /// </summary>
        public PressureData PresData
        {
            get { return this.m_PresData; }
            set { this.m_PresData = value; }
        }
        #endregion

        #region Method
        private void Initialize()
        {
            this.ProcessStatus = Define.E_ProcessStatus._0_None;
            this.Judgment = Define.E_JudgmentStatus.None;
            this.DispData = new DispData();
            this.DiffData = new DiffData();
            this.PresData = new PressureData();
        }
        #endregion
    }
}
