private async Task FillFileInfo(string path) { this.Status = "ファイル読み込み中..."; await Task.Run(() => { this.SrcPath = path; this.DestPath = Path.Combine(Path.GetDirectoryName(path), "output.csv"); var type = this._inferencer.Infer(path); var kind = CsvKindResolver.Resolve(type); this.SrcKind = kind; }); this.Status = "ファイル読み込み終了"; }
protected override int ExecuteArguments(IEnumerable <IArgument> args) { var srcPathArg = args.Get <Src1Argument>(); var srcTypeArg = args.Get <SrcType1Argument>(); var destPathArg = args.Get <DestArgument>(); var destTypeArg = args.Get <DestTypeArgument>(); var srcType = CsvResolver.ResolveType(srcTypeArg); var destType = CsvResolver.ResolveType(destTypeArg); var srcConvertKind = CsvKindResolver.Resolve(srcType); var destConvertKind = CsvKindResolver.Resolve(destType); try { var converter = ConverterFactory.Create(srcConvertKind, destConvertKind); var records = CsvReader.Read(srcType, srcPathArg.Argument).Cast <ICsvModel>(); var dest = converter.Convert(records); CsvWriter.Write(destType, destPathArg.Argument, dest); this._messenger.Send("CSV 変換が終了しました"); return(0); } catch (Exception ex) { this._messenger.Send("CSV 変換でエラーが発生しました"); this._messenger.Send(ex.Message); this._messenger.Send(ex.StackTrace); return(1); } }