示例#1
0
        private async Task CompleteBalance(int connectionId, HBCIDialogResult <AccountBalance> balance)
        {
            var data = await dbContext.ConnectionData.FindAsync(connectionId);

            data.LastSync = DateTime.Now;
            data.Balance  = (int)balance.Data.Balance;
            await dbContext.SaveChangesAsync();
        }
示例#2
0
        private async Task TransactionComplete(int connectionId, HBCIDialogResult e)
        {
            switch (e)
            {
            case HBCIDialogResult <List <TStatement> > statements:
                await CompleteSync(connectionId, statements);

                break;

            case HBCIDialogResult <AccountBalance> balance:
                await CompleteBalance(connectionId, balance);

                break;
            }
        }
示例#3
0
        private async Task CompleteSync(int connectionId, HBCIDialogResult <List <TStatement> > statements)
        {
            var accountTransactions = statements.Data
                                      .SelectMany(x => x.transactions)
                                      .Select(x => new AccountItem(x, connectionId))
                                      .ToArray();

            var ids     = accountTransactions.Select(x => x.Id);
            var present = await dbContext.AccountItems
                          .Where(x => ids.Contains(x.Id))
                          .Select(x => x.Id)
                          .ToArrayAsync();

            accountTransactions = accountTransactions
                                  .Where(x => !present.Contains(x.Id))
                                  .ToArray();

            dbContext.AccountItems.AddRange(accountTransactions);
            await dbContext.SaveChangesAsync();
        }
        public TransactionResult(int connectionId, HBCIDialogResult result)
        {
            if (result == null)
            {
                return;
            }

            ConnectionId = connectionId;

            if (result.IsSuccess && !result.IsSCARequired)
            {
                Status = "success";
            }
            else if (result.IsSCARequired)
            {
                Status = "tan_required";
            }
            else
            {
                Status = "error";
            }

            Messages = result.Messages?.Select(x => x.ToString()).ToArray();
        }