コード例 #1
0
        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 = "ファイル読み込み終了";
        }
コード例 #2
0
        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);
            }
        }