public static void Execute(CsvDivConfig config) { CsvDivider divider = new CsvDivider(config); divider.FileDivideCompleted += new EventHandler <EventArgs>(divider_FileDivideCompleted); divider.FileDivideStarted += new EventHandler <EventArgs>(divider_FileDivideStarted); divider.UnitFileDivided += new EventHandler <DividedEventArgs>(divider_UnitFileDivided); divider.UnitFileDividing += new EventHandler <DividingEventArgs>(divider_UnitFileDividing); divider.FileDivideFailed += new EventHandler <DivideExceptionEventArgs>(divider_FileDivideFailed); divider.Divide(); }
private void ProcessDivideCommand(object o) { IDividingLogger logger = o as IDividingLogger; if (logger == null) { return; } // セーブ Config.SaveTo(_configPath); IsDividing = true; // クリアログ CsvDivider divider = new CsvDivider(this.Config); divider.FileDivideStarted += (sender, e) => { string msg = string.Format("分割処理を開始します。(開始時間:{0})", DateTime.Now.ToLongTimeString()); logger.DivideStart(msg); }; divider.FileDivideCompleted += (sender, e) => { string msg = string.Format("分割処理が完了しました。(終了時間:{0})", DateTime.Now.ToLongTimeString()); logger.DivideComplete(msg); }; divider.FileDivideFailed += (sender, e) => { StringBuilder builder = new StringBuilder(); builder.AppendFormat("分割処理時エラー発生:{0}\n", e.Message); if (e.Error != null) { builder.AppendLine("--例外情報---"); builder.AppendLine(e.Error.Message); builder.AppendLine(e.Error.StackTrace); } logger.DivideFail(builder.ToString()); }; divider.UnitFileDivided += (sender, e) => { string fmt = "分割ファイル {0} への出力が完了しました。"; logger.AppendMessage(string.Format(fmt, Path.GetFileName(e.FileName))); }; divider.UnitFileDividing += (sender, e) => { string fmt = "分割ファイル {0} への出力を開始します。"; logger.AppendMessage(string.Format(fmt, Path.GetFileName(e.FileName))); }; divider.DivideAsync((x) => IsDividing = false); }