public async Task <IActionResult> BroadcastTransaction([FromBody] BroadcastTransactionRequest request) { if (request == null) { throw new ValidationApiException("Unable deserialize request"); } if (_settings.OperationsToForceRebuild?.Contains(request.OperationId) == true) { return(BadRequest(BlockchainErrorResponse.FromKnownError(BlockchainErrorCode.BuildingShouldBeRepeated))); } try { await _broadcastService.BroadCastTransactionAsync(request.OperationId, request.SignedTransaction); } catch (BusinessException e) when(e.Code == ErrorCode.TransactionAlreadyBroadcasted) { return(Conflict()); } catch (BusinessException e) when(e.Code == ErrorCode.OperationNotFound) { return(NoContent()); } return(Ok()); }