Exemple #1
0
        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);
        }