Esempio n. 1
0
        public async Task <CommandHandlingResult> Handle(Commands.SegwitTransferCommand command)
        {
            var sw = new Stopwatch();

            sw.Start();

            try
            {
                var response = await _bitcoinApiClient.SegwitTransfer(Guid.Parse(command.Id), command.Address);

                if (response.HasError && response.Error.ErrorCode != ErrorCode.DuplicateTransactionId)
                {
                    _log.Error($"{nameof(BitcoinCommandHandler)}:{nameof(Commands.SegwitTransferCommand)}", new Exception(response.ToJson()), context: command.ToJson());
                    return(CommandHandlingResult.Fail(_retryTimeout));
                }

                ChaosKitty.Meow();

                return(CommandHandlingResult.Ok());
            }
            finally
            {
                sw.Stop();
                _log.Info("Command execution time",
                          context: new { TxHandler = new { Handler = nameof(BitcoinCommandHandler), Command = nameof(Commands.SegwitTransferCommand),
                                                           Time    = sw.ElapsedMilliseconds } });
            }
        }
        public async Task <CommandHandlingResult> Handle(Commands.SegwitTransferCommand command)
        {
            var response = await _bitcoinApiClient.SegwitTransfer(Guid.Parse(command.Id), command.Address);

            if (response.HasError && response.Error.ErrorCode != ErrorCode.DuplicateTransactionId)
            {
                _log.Error($"{nameof(BitcoinCommandHandler)}:{nameof(Commands.SegwitTransferCommand)}", new Exception(response.ToJson()), context: command.ToJson());
                return(CommandHandlingResult.Fail(_retryTimeout));
            }

            ChaosKitty.Meow();

            return(CommandHandlingResult.Ok());
        }