private async Task ProcessMessageAsync(CashInEvent message) { var fees = message.CashIn.Fees; var fee = fees?.FirstOrDefault()?.Transfer; var entity = new Cashin() { AssetId = message.CashIn.AssetId, //BlockchainHash = , FeeSize = ParseNullabe(fee?.Volume), Id = Guid.Parse(message.Header.RequestId), State = HistoryState.Finished, Timestamp = message.Header.Timestamp, Volume = Math.Abs(decimal.Parse(message.CashIn.Volume)), WalletId = Guid.Parse(message.CashIn.WalletId) }; if (!await _historyRecordsRepository.TryInsertAsync(entity)) { _log.Warning($"Skipped duplicated cashin record", context: new { id = message.Header.RequestId }); } }
public async Task <CommandHandlingResult> Handle(CreateForwardCashinCommand command, IEventPublisher eventPublisher) { var entity = Mapper.Map <Cashin>(command); if (!await _historyRecordsRepository.TryInsertAsync(entity)) { _logger.Warning($"Skipped duplicated forward cashin record", context: new { id = command.OperationId }); return(CommandHandlingResult.Ok()); } eventPublisher.PublishEvent(new ForwardCashinCreatedEvent { AssetId = command.AssetId, OperationId = command.OperationId, Timestamp = command.Timestamp, Volume = command.Volume, WalletId = command.WalletId }); return(CommandHandlingResult.Ok()); }
public async Task <CommandHandlingResult> Handle(CashOutProcessedEvent @event) { var entity = Mapper.Map <Cashout>(@event); if (!await _historyRecordsRepository.TryInsertAsync(entity)) { _logger.Warning($"Skipped duplicated cashout record", context: new { id = @event.OperationId }); } return(CommandHandlingResult.Ok()); }
public async Task <CommandHandlingResult> Handle(CashTransferProcessedEvent @event) { var cashInOuts = Mapper.Map <IEnumerable <BaseHistoryRecord> >(@event); foreach (var cashInOut in cashInOuts) { if (!await _historyRecordsRepository.TryInsertAsync(cashInOut)) { _logger.Warning($"Skipped duplicated transfer record", context: new { id = @event.OperationId }); } } return(CommandHandlingResult.Ok()); }