private Task ProcessMessageAsync(CashInEvent message) { var fees = message.CashIn.Fees; var fee = fees?.FirstOrDefault()?.Transfer; var @event = new CashInProcessedEvent { OperationId = Guid.Parse(message.Header.RequestId), RequestId = Guid.Parse(message.Header.MessageId), WalletId = Guid.Parse(message.CashIn.WalletId), Volume = decimal.Parse(message.CashIn.Volume), AssetId = message.CashIn.AssetId, Timestamp = message.Header.Timestamp, FeeSize = ParseNullabe(fee?.Volume) }; _cqrsEngine.PublishEvent(@event, BoundedContext.Name); if (fees != null) { var feeEvent = new FeeChargedEvent { OperationId = message.Header.MessageId, OperationType = FeeOperationType.CashInOut, Fee = fees.Where(x => x.Transfer != null).Select(x => x.Transfer).ToJson() }; _cqrsEngine.PublishEvent(feeEvent, BoundedContext.Name); } return(Task.CompletedTask); }
private async Task ProcessMessageAsync(CashInEvent message) { var fees = message.CashIn.Fees; var fee = fees?.FirstOrDefault()?.Transfer; var @event = new CashInProcessedEvent { OperationId = Guid.Parse(message.Header.RequestId), RequestId = Guid.Parse(message.Header.MessageId), WalletId = Guid.Parse(message.CashIn.WalletId), Volume = decimal.Parse(message.CashIn.Volume), AssetId = message.CashIn.AssetId, Timestamp = message.Header.Timestamp, FeeSize = ParseNullabe(fee?.Volume) }; _cqrsEngine.PublishEvent(@event, BoundedContext.Name); if (fees != null) { var feeEvent = new FeeChargedEvent { OperationId = message.Header.MessageId, OperationType = FeeOperationType.CashInOut, Fee = fees.Where(x => x.Transfer != null).Select(x => x.Transfer).ToJson() }; _cqrsEngine.PublishEvent(feeEvent, BoundedContext.Name); } await _lykkeMailerliteClient.Customers.UpdateDepositAsync(new UpdateCustomerDepositRequest { CustomerId = message.CashIn.WalletId, RequestId = Guid.NewGuid().ToString(), Timestamp = message.Header.Timestamp.ToTimestamp() }); }
private async Task ProcessMessageAsync(CashInEvent item) { if (!_depositCurrencies.Contains(item.CashIn.AssetId, StringComparer.InvariantCultureIgnoreCase)) { return; } _log.Info("CashIn event", context: item.ToJson()); double volume = Convert.ToDouble(item.CashIn.Volume); (double convertedVolume, string assetId) = await _currencyConverter.ConvertAsync(item.CashIn.AssetId, volume); if (convertedVolume == 0) { return; } _cqrsEngine.PublishEvent(new ClientDepositedEvent { ClientId = item.CashIn.WalletId, OperationId = item.Header.MessageId ?? item.Header.RequestId, Asset = item.CashIn.AssetId, Amount = volume, BaseAsset = assetId, BaseVolume = convertedVolume, OperationType = "CashIn", Timestamp = item.Header.Timestamp }, TierBoundedContext.Name); }
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 }); } }
private CashInOutQueueMessage ToOld(CashInEvent cashInEvent) { return(new CashInOutQueueMessage { Id = cashInEvent.Header.MessageId, ClientId = cashInEvent.CashIn.WalletId, Amount = cashInEvent.CashIn.Volume, AssetId = cashInEvent.CashIn.AssetId, Date = cashInEvent.Header.Timestamp, Fees = cashInEvent.CashIn.Fees?.ToOldFees(cashInEvent.Header.Timestamp), }); }
private async Task ProcessMessageAsync(CashInEvent item) { try { await _cashOperationsCollector.AddDataItemAsync( new Service.Limitations.Core.Domain.CashOperation { Id = item.Header.MessageId ?? item.Header.RequestId, ClientId = item.CashIn.WalletId, Asset = item.CashIn.AssetId, Volume = double.Parse(item.CashIn.Volume), DateTime = item.Header.Timestamp, }); } catch (Exception ex) { _log.Error(ex, context: item); throw; } }
private Task ProcessMessageAsync(CashInEvent message) { UpdateBalances(message.Header, message.BalanceUpdates); UpdateTotalBalances(message.Header, message.BalanceUpdates); return(Task.CompletedTask); }
private async Task ProcessCashinMessage(CashInEvent cashinEvent) { var message = ToOld(cashinEvent); await _messageProcessor.ProcessMessage(message); }