Beispiel #1
0
 public async Task SaveTransactions(BitcoinQuery bitcoinQuery)
 {
     using (var conn = new SqlConnection(_sqlConnection))
     {
         using (var cmd = new SqlCommand(DbQueries.InsertTransactions, conn))
         {
             if (conn.State != ConnectionState.Open)
             {
                 await conn.OpenAsync();
             }
             cmd.CommandType = CommandType.Text;
             cmd.Parameters.AddWithValue("@ACCOUNT_ADDRESS", bitcoinQuery.Address);
             cmd.Parameters.AddWithValue("@AMOUNT", bitcoinQuery.Amount);
             cmd.Parameters.AddWithValue("@FROM_WALLET_ID", string.Empty);
             await cmd.ExecuteNonQueryAsync();
         }
     }
 }
        public async Task <IHttpActionResult> SendBtc([FromBody] BitcoinRequest request)
        {
            var operations = new BitcoinOperations(WalletId, WalletPassword1, WalletPassword2);

            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            BitcoinQuery query = Mapper.Map <BitcoinRequest, BitcoinQuery>(request);

            var bitcoinSend = await operations.Send(query.Address, BitcoinValue.FromBtc(query.Amount), WalletId);

            // This is fake bitcoin service but can be use as real

            if (bitcoinSend.TxHash != null)
            {
                await _dbExecutor.SaveTransactions(query);
            }

            return(Ok());
        }