コード例 #1
0
        public IActionResult PostFileToBuffer([FromForm] BankStatementFile bankStatementFile)
        {
            var parsingResult = _importTransactionsService.ImportTransactions(bankStatementFile);

            return(parsingResult switch
            {
                CommandSuccess <int> commandSuccess => StatusCode(StatusCodes.Status201Created,
                                                                  new BankStatementFileImportResult()
                {
                    NumberOfImportedTransactions = commandSuccess.Result
                }),
                InvalidInputResult <int> invalidInputResult => Problem(invalidInputResult.Reason, statusCode: StatusCodes.Status400BadRequest),
                _ => throw new ArgumentOutOfRangeException(nameof(parsingResult))
            });
コード例 #2
0
    public ICommandResult <int> ImportTransactions(BankStatementFile bankStatementFile)
    {
        if (string.IsNullOrWhiteSpace(bankStatementFile.FileType))
        {
            return(new InvalidInputResult <int>("File type cannot be empty"));
        }

        var parser = _bankStatementParsers.FirstOrDefault(x => x.CanHandle(bankStatementFile));

        if (parser == null)
        {
            return(new InvalidInputResult <int>("No parser found for given statement type"));
        }

        var parsingResult = parser.Parse(bankStatementFile.FileContent);

        _bufferedTransactionStore.SaveTransactionsToBuffer(parsingResult);
        return(new CommandSuccess <int>(parsingResult.Count()));
    }
コード例 #3
0
 public bool CanHandle(BankStatementFile bankStatementFile)
 {
     return(bankStatementFile.FileType.Equals("ing", StringComparison.OrdinalIgnoreCase));
 }