FreeMoney.BitcoinTransaction.Initialize C# (CSharp) Method

Initialize() public method

public Initialize ( string>.Dictionary transaction_params, int num_confirmations_required ) : bool
transaction_params string>.Dictionary
num_confirmations_required int
return bool
        public bool Initialize(Dictionary<string,string> transaction_params, int num_confirmations_required)
        {
            m_transaction_code = transaction_params["item_number"];
            m_payee = transaction_params["payee"];
            m_payee_email = transaction_params["business"];
            m_item_name = transaction_params["item_name"];
            m_original_amount = Decimal.Parse(transaction_params["amount"]);
            m_original_currency_code = transaction_params["currency_code"];
            m_notify_url = transaction_params["notify_url"];
            m_num_confirmations_required = num_confirmations_required;

            string pingback_url = (m_config["bitcoin_external_url"] != "") ? m_config["bitcoin_external_url"] : m_base_url;
            // TODO:: Probably shouldn'thard-code this...
            pingback_url += "/btcping/?service=bitcoinmonitor";

            /*
            if (!$this->_mysqli) {
                print_simple_and_exit( "No mysqli" );
                return false;
            }
            */

            if (m_transaction_code == "") {
                m_has_errors = true;
                return false;
            }

            if ( !(Populate("transaction_code") || Create()) ) {
                m_has_errors = true;
                m_log.Warn("[FreeMoney] Unable to find an existing Bitcoin transaction or create a new one.");
                return false;
            }
            m_log.Info("[FreeMoney] Contacting notification service.");

            BitcoinNotificationService notification_service = new BitcoinNotificationService(m_config);

            if (!notification_service.Subscribe(m_btc_address, m_num_confirmations_required, pingback_url)) {
                m_has_errors = true;
                return false;
            }

            return true;
        }

Usage Example

        //public bool InitializeBitcoinTransaction(Dictionary<string,string> transaction_params, string base_url)
        private BitcoinTransaction InitializeBitcoinTransaction(FreeMoneyTransaction txn, string base_url)
        {
            // ED TODO: Put in params

            Dictionary<string, string> transaction_params = new Dictionary<string, string>();
            //transaction_params.Add("payee", txn.SellersEmail);
            transaction_params.Add("payee", txn.To.ToString());
            transaction_params.Add("business", txn.SellersEmail);
            transaction_params.Add("item_name", txn.Description);
            transaction_params.Add("item_number", txn.TxID.ToString());
            transaction_params.Add("amount", ConvertAmountToCurrency(txn.Amount).ToString());
            transaction_params.Add("currency_code", m_gridCurrencyCode);
            transaction_params.Add("notify_url", "");

            // Optionally, use an external URL that's accessible from outside NAT.
            if (m_externalBaseURL != "") {
                base_url = m_externalBaseURL;
            }

            BitcoinTransaction btc_trans = new BitcoinTransaction(m_connectionString, m_btcconfig, "http://"+base_url);
            btc_trans.Initialize(transaction_params, m_btcNumberOfConfirmationsRequired);

            return btc_trans;
        }