//using ExcelToCsvToDb.Commons;
//using KssSmaPlaLib.Exchange.Interfaces;
//using KssSmaPlaLib.IO.File;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;
//using System.Xml.Linq;

//namespace ExcelToCsvToDb.DTO
//{
//    /// <summary>
//    /// タクト管理テーブルDTO
//    /// </summary>
//    public class TactManagementDto : ICsvExportableUxer
//    {
//        public int TactIndex { get; set; } = -1;
//        public int LineId { get; set; } = -1;
//        public string ModelCd { get; set; } = string.Empty;
//        public string BasicPartsNo { get; set; } = string.Empty;
//        public string Derivation { get; set; } = string.Empty;
//        public int Tact { get; set; } = -1;

//        public string CsvHeader => CsvUxer.Join("tact_index", "line_id", "model_cd", "basic_parts_no", "derivation", "tact");

//        public string ToCsvLine() => CsvUxer.Join(TactIndex, LineId, ModelCd, BasicPartsNo, Derivation, Tact);

//        /// <summary>
//        /// 内容は同一か？
//        /// </summary>
//        /// <param name="dto"></param>
//        /// <returns></returns>
//        public bool IsSame(TactManagementDto dto)
//        {
//            return 
//                dto.LineId == this.LineId &&
//                dto.ModelCd == this.ModelCd &&
//                dto.BasicPartsNo == this.BasicPartsNo &&
//                dto.Derivation == this.Derivation &&
//                dto.Tact == this.Tact;
//        }

//        public static int AddToList(List<TactManagementDto> list, TactManagementDto dto)
//        {
//            // リストに同じ内容のDTOがあるか？あった場合そのタクトインデックスを返す
//            var existDto = list.FirstOrDefault(m => m.IsSame(dto));
//            if (existDto != null) return existDto.TactIndex;

//            // 新規タクトインデックスを設定しリストに追加
//            dto.TactIndex = list.Count;
//            list.Add(dto);

//            return dto.TactIndex;
//        }
//    }
//}
