This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
SXS20240115/SRC/MESAgent/MESAutoLoader/AutoLoaderLib/EPIParseTemplate.cs
2024-01-23 14:01:04 +08:00

236 lines
6.7 KiB
C#

using System;
using System.Data;
using System.IO;
using iMESCore.Settings;
using Microsoft.VisualBasic;
using static iMESCore.DataBase.iMESSql;
namespace AutoLoaderLib_Base
{
//調整行業包基底AutoLoaderLib_Base將原有EPIParseTemplate, ParseNEL, ParsePL, ParsePR, ParseQEL等類別進行下架處理
//public abstract class EPIParseTemplate
//{
// // 設定暫存資料表的欄位
// internal abstract bool AddColumns(DataTable dt);
// // 解析資料, 並寫入暫存資料表
// internal abstract bool ParsingFile(DataTable dt, string file);
// // 將暫存資料表寫入資料庫
// internal abstract bool InsertTable(DataTable dt);
// internal IDbConnection objConnection;
// public enum FileTypeEnum
// {
// csv = 0,
// xls = 1,
// dat = 2
// }
// private string[] wildcards = new string[] { "*.csv", "*.xls", "*.dat" };
// private string strDataBaseType; // DataBase Type:oracle, mysql, access
// private string strConnectionString; // Connection string
// private AppSettings objSetting = new AppSettings();
// private DataTable objDataTable;
// private string SourcePath;
// private string DestinationPath;
// private string QueuePath;
// private string FailPath;
// /// <summary>
///// 建構子
///// </summary>
///// <param name="paramSourcePath"></param>
///// <param name="paramDestinationPath"></param>
///// <param name="paramQueuePath"></param>
///// <param name="paramFailPath"></param>
///// <remarks></remarks>
// public EPIParseTemplate(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath)
// {
// objSetting = new AppSettings();
// // //Get database type
// strDataBaseType = objSetting.GetDataBaseType();
// // //Get connection string
// strConnectionString = objSetting.GetConnectionString(strDataBaseType);
// objConnection = CreateConnection(strConnectionString);
// if (Strings.Right(paramSourcePath, 1) != @"\")
// {
// paramSourcePath += @"\";
// }
// SourcePath = paramSourcePath;
// if (Strings.Right(paramDestinationPath, 1) != @"\")
// {
// paramDestinationPath += @"\";
// }
// DestinationPath = paramDestinationPath;
// if (Strings.Right(paramQueuePath, 1) != @"\")
// {
// paramQueuePath += @"\";
// }
// QueuePath = paramQueuePath;
// if (Strings.Right(paramFailPath, 1) != @"\")
// {
// paramFailPath += @"\";
// }
// FailPath = paramFailPath;
// }
// ~EPIParseTemplate()
// {
// if (objConnection != null)
// {
// objConnection = null;
// }
// if (objSetting != null)
// {
// objSetting = null;
// }
// if (objDataTable != null)
// {
// objDataTable = null;
// }
// }
// /// <summary>
///// 解析資料
///// </summary>
///// <param name="paramFileType"></param>
///// <returns></returns>
///// <remarks></remarks>
// public string ParsingData(FileTypeEnum paramFileType)
// {
// string strResult = string.Empty;
// string QueueFile = "";
// string DestinationFile = "";
// string FailFile = "";
// try
// {
// objDataTable = new DataTable("RawData");
// // 設定暫存資料表的欄位
// if (AddColumns(objDataTable))
// {
// foreach (var SourceFile in Directory.GetFiles(SourcePath, wildcards[(int)paramFileType], SearchOption.TopDirectoryOnly))
// {
// if (File.Exists(SourceFile))
// {
// QueueFile = QueuePath + Path.GetFileName(SourceFile);
// DestinationFile = DestinationPath + Path.GetFileName(SourceFile);
// FailFile = FailPath + Path.GetFileName(SourceFile);
// try
// {
// // 將檔案從 Source 移至 Queue
// MoveFile(SourceFile, QueueFile);
// objDataTable.Rows.Clear();
// // 解析資料, 並寫入暫存資料表
// if (ParsingFile(objDataTable, QueueFile))
// {
// // 將暫存資料表寫入資料庫
// if (InsertTable(objDataTable))
// {
// // 將檔案從 Queue 移至 Destination
// MoveFile(QueueFile, DestinationFile);
// }
// }
// }
// catch (Exception ex)
// {
// // 將檔案從 Queue 移至 Fail
// MoveFile(QueueFile, FailFile);
// throw;
// }
// }
// }
// strResult = "success";
// }
// }
// catch (Exception ex)
// {
// strResult = "Message:" + ex.Message + ",StackTrace:" + ex.StackTrace;
// }
// finally
// {
// }
// return strResult;
// }
// /// <summary>
///// 搬移檔案
///// </summary>
///// <param name="paramSourceFile">來源檔案</param>
///// <param name="paramTargetFile">目的檔案</param>
///// <remarks></remarks>
// private void MoveFile(string paramSourceFile, string paramTargetFile)
// {
// try
// {
// // 判斷目的檔案是否已存在, 若存在必須先刪除
// if (File.Exists(paramTargetFile))
// {
// File.Delete(paramTargetFile);
// }
// // 移動檔案至目的
// Directory.Move(paramSourceFile, paramTargetFile);
// }
// catch (Exception ex)
// {
// throw;
// }
// }
//}
}