コード例 #1
0
ファイル: StatementHandler.cs プロジェクト: pyzeon/QPAS
        private async Task <Dictionary <string, DataContainer> > ParseStatement(IStatementParser parser, string flexqText, ProgressDialogController progress)
        {
            Dictionary <string, DataContainer> newData = null;

            try
            {
                await Task.Run(() => newData = parser.Parse(flexqText, progress, _settings, _currencies));
            }
            catch (Exception ex)
            {
                progress.CloseAsync().Forget();
                _dialogService.ShowMessageAsync(_mainVm, "Error", ex.Message).Forget();
                _logger.Error(ex, "Flex file parse error");
                return(null);
            }

            progress.SetMessage("Updating open trades");

            return(newData);
        }
コード例 #2
0
        public async Task <IActionResult> Post([FromRoute] Bank bank, IFormFile file)
        {
            string csvString;

            using (var stream = new MemoryStream())
            {
                await file.CopyToAsync(stream);

                csvString = Encoding.UTF8.GetString(stream.ToArray());
            }

            return(csvString
                   .Split("\n")
                   .Where(line => line.Length > 0)
                   .Select(r => _transactionCleaner.Clean(r))
                   .Skip(1)
                   .Select(line => new Row(line))
                   .Select(row => _statementParser.Parse(row.Cells))
                   .Pipe(trans => new Summary(trans))
                   .Pipe(summary => Ok(summary)));
        }