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(); }
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; } }
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(); }