Advertisement
Guest User

Untitled

a guest
Mar 25th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. [QueueTrigger("chronobank-in")]
  2. public async Task ProcessInMessage(ChronoBankCashInMsg msg)
  3. {
  4. var logTask = _log.WriteInfoAsync(nameof(ChronoBankQueueHandler), nameof(ProcessInMessage), msg.ToJson(),
  5. "Message received");
  6.  
  7. try
  8. {
  9. var walletCreds = await _walletCredentialsRepository.GetByChronoBankContractAsync(msg.Contract);
  10. if (walletCreds == null)
  11. {
  12. await
  13. _log.WriteWarningAsync(nameof(ChronoBankQueueHandler), nameof(ProcessInMessage), msg.ToJson(),
  14. "Wallet not found");
  15. return;
  16. }
  17.  
  18. await
  19. _paymentSystemsRawLog.RegisterEventAsync(
  20. PaymentSystemRawLogEvent.Create(CashInPaymentSystem.ChronoBank, "Msg received",
  21. msg.ToJson()));
  22.  
  23. var txId = $"{msg.TransactionHash}_{msg.Contract}";
  24.  
  25. var pt = await _paymentTransactionsRepository.TryCreateAsync(PaymentTransaction.Create(
  26. txId, CashInPaymentSystem.ChronoBank, walletCreds.ClientId, msg.Amount,
  27. LykkeConstants.ChronoBankAssetId, LykkeConstants.ChronoBankAssetId, null));
  28.  
  29. if (pt == null)
  30. {
  31. await
  32. _log.WriteWarningAsync(nameof(ChronoBankQueueHandler), nameof(ProcessInMessage), msg.ToJson(),
  33. "Transaction already handled");
  34. //return if was handled previously
  35. return;
  36. }
  37.  
  38. var result = await
  39. _exchangeOperationsService.IssueAsync(walletCreds.ClientId, LykkeConstants.ChronoBankAssetId,
  40. msg.Amount);
  41.  
  42. if (!result.IsOk())
  43. {
  44. await
  45. _log.WriteWarningAsync(nameof(ChronoBankQueueHandler), msg.ToJson(), result.ToJson(),
  46. "ME error");
  47. return;
  48. }
  49.  
  50. await
  51. _paymentTransactionsRepository.SetAsOkAsync(pt.Id, msg.Amount, null);
  52. }
  53. catch (Exception ex)
  54. {
  55. await _log.WriteErrorAsync(nameof(ChronoBankQueueHandler), nameof(ProcessInMessage), msg.ToJson(), ex);
  56. }
  57. finally
  58. {
  59. await logTask;
  60. }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement