deebug

API.vb

Jul 12th, 2011
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Imports System.Security
  2. Imports System.Collections.Specialized
  3. Imports AutoMtGox.Sitesource
  4. Imports AutoMtGox.Sitesource.Log
  5. Imports AutoMtGox.Sitesource.Network
  6. Imports AutoMtGox.Sitesource.Currency
  7.  
  8. Namespace MtGox
  9.     ''' <summary>
  10.    ''' MtGox API.
  11.    ''' </summary>
  12.    ''' <remarks></remarks>
  13.    Public Class API
  14.         Private _name As String
  15.         Private _pass As SecureString = Nothing
  16.         Private _request As Request
  17.         Private _logger As SimpleLogger
  18.         ''' <summary>
  19.        ''' Create a new instance.
  20.        ''' </summary>
  21.        ''' <param name="logger">Logger.</param>
  22.        ''' <param name="name">MtGox username.</param>
  23.        ''' <param name="pass">MtGox password.</param>
  24.        ''' <remarks></remarks>
  25.        Public Sub New(ByRef logger As SimpleLogger, ByVal [name] As String, ByVal pass As SecureString)
  26.             _request = New Request(logger)
  27.             _name = [name]
  28.             _pass = pass
  29.             _logger = logger
  30.         End Sub
  31.         ''' <summary>
  32.        ''' Set login
  33.        ''' </summary>
  34.        ''' <param name="name"></param>
  35.        ''' <param name="pass"></param>
  36.        ''' <remarks></remarks>
  37.        Public Sub SetLogin(ByVal name As String, ByVal pass As SecureString)
  38.             _name = name
  39.             _pass = pass
  40.         End Sub
  41.         ''' <summary>
  42.        ''' Get current balance.
  43.        ''' </summary>
  44.        ''' <remarks></remarks>
  45.        Public Function GetBalance() As String
  46.             If String.IsNullOrEmpty(_name) Or Encryption.Util.IsNullOrEmpty(_pass) Then Return Nothing
  47.             Dim data As New NameValueCollection()
  48.             data.Add("name", _name)
  49.             data.Add("pass", Encryption.Util.ToInsecureString(_pass))
  50.             Try
  51.                 Return _request.GetResponse(My.Settings.Host & My.Settings.UrlCancelOrder, data)
  52.             Catch ex As Exception
  53.                 _logger.WriteEntry(Log.LogEntryType.Error, "SellBTC() response error. {0}", ex.ToString())
  54.             End Try
  55.             Return Nothing
  56.         End Function
  57.         ''' <summary>
  58.        ''' Buy BTC.
  59.        ''' </summary>
  60.        ''' <param name="amount">Amount of BTC you want to buy.</param>
  61.        ''' <param name="price">The price for one BTC you want to buy for.</param>
  62.        ''' <returns></returns>
  63.        ''' <remarks></remarks>
  64.        Public Function BuyBTC(ByVal amount As BTC, ByVal price As USD) As String
  65.             If String.IsNullOrEmpty(_name) Or Encryption.Util.IsNullOrEmpty(_pass) Then Return Nothing
  66.             Dim data As New NameValueCollection()
  67.             data.Add("name", _name)
  68.             data.Add("pass", Encryption.Util.ToInsecureString(_pass))
  69.             data.Add("amount", amount.InvariantString)
  70.             data.Add("price", price.InvariantString)
  71.             Try
  72.                 Return _request.GetResponse(My.Settings.Host & My.Settings.UrlBuyBTC, data)
  73.             Catch ex As Exception
  74.                 _logger.WriteEntry(Log.LogEntryType.Error, "SellBTC() response error. {0}", ex.ToString())
  75.             End Try
  76.             Return Nothing
  77.         End Function
  78.         ''' <summary>
  79.        ''' Sell BTC
  80.        ''' </summary>
  81.        ''' <param name="amount">Amount of BTC you want to sell.</param>
  82.        ''' <param name="price">The price for one BTC you want to sell for.</param>
  83.        ''' <returns></returns>
  84.        ''' <remarks></remarks>
  85.        Public Function SellBTC(ByVal amount As BTC, ByVal price As USD) As String
  86.             If String.IsNullOrEmpty(_name) Or Encryption.Util.IsNullOrEmpty(_pass) Then Return Nothing
  87.             Dim data As New NameValueCollection()
  88.             data.Add("name", _name)
  89.             data.Add("pass", Encryption.Util.ToInsecureString(_pass))
  90.             data.Add("amount", amount.InvariantString)
  91.             data.Add("price", price.InvariantString)
  92.             Try
  93.                 Return _request.GetResponse(My.Settings.Host & My.Settings.UrlSellBTC, data)
  94.             Catch ex As Exception
  95.                 _logger.WriteEntry(Log.LogEntryType.Error, "SellBTC() response error. {0}", ex.ToString())
  96.             End Try
  97.             Return Nothing
  98.         End Function
  99.         ''' <summary>
  100.        ''' Cancel order.
  101.        ''' </summary>
  102.        ''' <param name="oid">Order id you want to cancel.</param>
  103.        ''' <param name="type">The order type. Buy or sell.</param>
  104.        ''' <remarks></remarks>
  105.        Public Function CancelOrder(ByVal oid As Guid, ByVal type As OrderType) As String
  106.             If String.IsNullOrEmpty(_name) Or Encryption.Util.IsNullOrEmpty(_pass) Then Return Nothing
  107.             Dim data As New NameValueCollection()
  108.             data.Add("name", _name)
  109.             data.Add("pass", Encryption.Util.ToInsecureString(_pass))
  110.             data.Add("oid", oid.ToString())
  111.             data.Add("type", CInt(type))
  112.             Try
  113.                 Return _request.GetResponse(My.Settings.Host & My.Settings.UrlCancelOrder, data)
  114.             Catch ex As Exception
  115.                 _logger.WriteEntry(Log.LogEntryType.Error, "CancelOrder() response error. {0}", ex.ToString())
  116.             End Try
  117.             Return Nothing
  118.         End Function
  119.         ''' <summary>
  120.        ''' Get all orders.
  121.        ''' </summary>
  122.        ''' <returns></returns>
  123.        ''' <remarks></remarks>
  124.        Public Function GetOrders() As String
  125.             If String.IsNullOrEmpty(_name) Or Encryption.Util.IsNullOrEmpty(_pass) Then Return Nothing
  126.             Dim data As New NameValueCollection()
  127.             data.Add("name", _name)
  128.             data.Add("pass", Encryption.Util.ToInsecureString(_pass))
  129.             Try
  130.                 Return _request.GetResponse(My.Settings.Host & My.Settings.UrlGetOrders, data)
  131.             Catch ex As Exception
  132.                 _logger.WriteEntry(EventLogEntryType.Error, "GetOrders() response error. {0}", ex.ToString())
  133.             End Try
  134.             Return Nothing
  135.         End Function
  136.         ''' <summary>
  137.        ''' Get Ticker Data.
  138.        ''' </summary>
  139.        ''' <remarks></remarks>
  140.        Public Function GetTicker() As String
  141.             Try
  142.                 Return _request.GetResponse(My.Settings.Host & My.Settings.UrlTicker)
  143.             Catch ex As Exception
  144.                 _logger.WriteEntry(EventLogEntryType.Error, "GetTicker() response error. {0}", ex.ToString())
  145.             End Try
  146.             Return Nothing
  147.         End Function
  148.         ''' <summary>
  149.        ''' Get Trades
  150.        ''' </summary>
  151.        ''' <returns></returns>
  152.        ''' <remarks></remarks>
  153.        Public Function GetTrades() As String
  154.             Try
  155.                 Return _request.GetResponse(My.Settings.Host & My.Settings.UrlGetTrades)
  156.             Catch ex As Exception
  157.                 _logger.WriteEntry(EventLogEntryType.Error, "GetTrades() response error. {0}", ex.ToString())
  158.             End Try
  159.             Return Nothing
  160.         End Function
  161.     End Class
  162. End Namespace
Advertisement
Add Comment
Please, Sign In to add comment