private async Task <int> ProcessTransactionObservation(TransactionHistoryObservation observation) { int count = 0; try { var context = new PaymentContext(observation.TableId); var last = await _txHistoryRepository.GetLastRecordAsync(context.TableId); if (last != null) { context.Cursor = last.PaymentId; } do { count += await QueryAndProcessPayments(observation.Address, context); }while (!string.IsNullOrEmpty(context.Cursor)); } catch (Exception ex) { await _log.WriteErrorAsync(nameof(TransactionHistoryService), nameof(ProcessTransactionObservation), $"Failed to process transaction observation for address. address={observation.Address}", ex); } return(count); }
private TransactionHistoryObservation CreateTransactionObservation(string address) { var observation = new TransactionHistoryObservation { Address = address, TableId = Guid.NewGuid().ToString("N").ToUpper() }; return(observation); }
public async Task AddOutgoingTransactionObservationAsync(string address) { var observation = await _observationRepository.GetAsync(address); // ReSharper disable once ConvertIfStatementToNullCoalescingExpression if (observation == null) { observation = new TransactionHistoryObservation { Address = address }; } observation.IsOutgoingObserved = true; await _observationRepository.InsertOrReplaceAsync(observation); }