/// <summary> /// 取得自動輸出參數設定 /// </summary> /// <returns></returns> public static AutoExportArgument GetAutoExportArgument() { var _settingPath = ConfigurationManager.AppSettings["AutoExportSettingFilepath"].ToString(); AutoExportArgument _autoExportSettings = new AutoExportArgument(); var fileExists = File.Exists(_settingPath); if (fileExists) { var lines = File.ReadAllLines(_settingPath, Encoding.UTF8); var line = lines.Skip(1).Take(1).SingleOrDefault(); string exportStyle = lines.Skip(2).Take(1).SingleOrDefault(); if (exportStyle != null) { _autoExportSettings.IsMahrExport = (exportStyle == "Mahr"); } if (line != null) { var parts = line.Split(','); var postfixType = (parts[3] == "AutoNumber") ? AutoExportArgumentPostfixType.AutoNumber : (parts[3] == "DateTime") ? AutoExportArgumentPostfixType.DateTime : AutoExportArgumentPostfixType.Mixed; var postFixFormat = (parts[3] == "AutoNumber") ? "{0:0000}" : (parts[3] == "DateTime") ? "{0:yyyyMMddHHmmss}" : "{0:yyyyMMddHHmmss}-{1:0000}"; if (parts.Length >= 5) { _autoExportSettings.OutputDirectory = parts[0]; _autoExportSettings.PrefixType = parts[1] == "Default" ? AutoExportArgumentPrefixType.Default : AutoExportArgumentPrefixType.Custom; _autoExportSettings.Prefix = parts[2]; _autoExportSettings.PostfixType = postfixType; _autoExportSettings.ExtensionName = parts[4]; _autoExportSettings.PostfixFormat = postFixFormat; } } } return _autoExportSettings; }
/// <summary> /// GetAutoExportFileName /// </summary> /// <param name="autoExportSetting">資料</param> /// <param name="autoNumber">目前自動編號</param> /// <param name="defaultPrefix">預設前置詞</param> /// <returns></returns> public static string GetAutoExportFileName(AutoExportArgument autoExportSetting, int autoNumber, string defaultPrefix) { var postfix = ""; var postfixFormat = autoExportSetting.PostfixFormat; switch (autoExportSetting.PostfixType) { case AutoExportArgumentPostfixType.AutoNumber: postfix = String.Format(postfixFormat, autoNumber); break; case AutoExportArgumentPostfixType.DateTime: postfix = String.Format(postfixFormat, DateTime.Now); break; case AutoExportArgumentPostfixType.Mixed: postfix = String.Format(postfixFormat, DateTime.Now, autoNumber); break; } var prefix = autoExportSetting.PrefixType == AutoExportArgumentPrefixType.Default ? defaultPrefix : autoExportSetting.Prefix; var filename = prefix + postfix + autoExportSetting.ExtensionName; return Path.Combine(autoExportSetting.OutputDirectory, filename); }