//process to upload file one by one line in configure file private void FileMigration(LineInfo line) { try { string indicator = line.Indicator.Trim().ToUpper(); if (indicator.Equals(Common.Indicator_Upload_Flag, StringComparison.OrdinalIgnoreCase)) { hasUpload = true; string localFileFullName = System.IO.Path.Combine(Common.Upload_Source_Folder, line.LocalFile); string prdFile = line.PRDFile; string backUpFile = line.BackUpFile.Replace("@Date@", DateTime.Now.ToString("yyyyMMdd")); if (localFileFullName.IndexOf("*.*") > 0) { //upload the configure path include "*.*" StarFileUplod(localFileFullName, prdFile, backUpFile); } else { //upload the configure path include fileName NormalFileUplod(localFileFullName, prdFile, backUpFile, line); } } //download file else if (indicator.Equals(Common.Indicator_Download_Flag, StringComparison.OrdinalIgnoreCase)) { hasDownload = true; DownloadFile(line); } } catch (Exception ex) { LogHelper.WriteLog(ex); } }
/// <summary> /// parse file line /// </summary> /// <param name="logLine"></param> /// <returns></returns> public LineInfo ParseLine(string logLine) { LineInfo logLineInfo=null; string separator = "=="; if (!logLine.StartsWith("#") && logLine.StartsWith("@") && logLine.IndexOf(separator) > 0 ) { string[] splitLogLine = logLine.Split(new string[] { separator }, StringSplitOptions.RemoveEmptyEntries); if (splitLogLine[0].Trim().Equals(Common.Indicator_Upload_Flag, StringComparison.OrdinalIgnoreCase)) { logLineInfo = new LineInfo { Indicator = splitLogLine[0].Trim(), LocalFile = splitLogLine[1].Trim(), PRDFile = splitLogLine[2].Trim(), BackUpFile = splitLogLine[3].Trim() }; } //for download else if (splitLogLine[0].Trim().Equals(Common.Indicator_Download_Flag, StringComparison.OrdinalIgnoreCase)) { logLineInfo = new LineInfo { Indicator = splitLogLine[0].Trim(), PRDFile = splitLogLine[1].Trim(), }; } } else { logLineInfo = null; } return logLineInfo; }
//download the file from configure path private void DownloadFile(LineInfo line) { string prdDir = FileHelper.GetDirectoryName(line.PRDFile); string tempDir = string.Empty; if (prdDir.IndexOf(":") > 0) { tempDir = prdDir.Replace(":", "").Trim(); } Common.Migrate_Description.AppendLine("Starting move PRD file to DOWNLOAD folder"); if (FileHelper.IsDirectory(line.PRDFile) || line.PRDFile.IndexOf("*.*") > 0) //download all files in the directory { string[] fileEntries = Directory.GetFiles(prdDir); foreach (string file in fileEntries) { FileInfo fi = new FileInfo(file); string prdFile = fi.Name; string downloadFile = System.IO.Path.Combine(Common.Download_Folder, tempDir, FileHelper.GetFileName(prdFile)); FileMove(fi.FullName, downloadFile); } } else //download the specific file { string prdFile = line.PRDFile; string downloadFile = System.IO.Path.Combine(Common.Download_Folder, tempDir, FileHelper.GetFileName(prdFile)); FileMove(prdFile, downloadFile); } }
//the configure path include the fileName one. private void NormalFileUplod(string localFileFullName, string prdFile, string backUpFile, LineInfo line) { //check if back up file forget include the fileName string backUpFileName = backUpFile; if (FileHelper.IsDirectory(backUpFile)) { backUpFileName = Path.Combine(backUpFile, FileHelper.GetFileName(localFileFullName)); } string prdFileName = prdFile; if (FileHelper.IsDirectory(prdFile)) { prdFileName = Path.Combine(prdFile, FileHelper.GetFileName(localFileFullName)); } beforeMigration = System.IO.Path.Combine(Common.Upload_Before_Folder, line.LocalFile); afterMigration = System.IO.Path.Combine(Common.Upload_After_Folder, line.LocalFile); FileUploadMigration(beforeMigration, afterMigration, backUpFileName, localFileFullName, prdFileName); }