Visual Basic - Error MarketCatalogue

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • nestor1971
    Junior Member
    • Sep 2014
    • 5

    #1

    Visual Basic - Error MarketCatalogue

    Hello, I get an error in the application market catalog do not know where I'm wrong, the one below is the code I added to a module by error on the line in red
    Code:
    Imports System.Net
    Imports System.Text
    Imports System.IO
    Imports Newtonsoft.Json
    Module SportsAPI
    
        Public ssoid As String 'session token
    
        Private Function SendSportsReq(ByVal jsonString As String)
    
            Dim request As WebRequest = _
                WebRequest.Create("https://api.betfair.com/exchange/betting/json-rpc/v1")
    
            Dim byteArray As Byte() = Encoding.UTF8.GetBytes(jsonString)
    
            request.Method = "POST"
    
            request.ContentType = "application/json"
    
            request.ContentLength = byteArray.Length
    
            request.Headers.Add("X-Application: MY APPKEY")
    
            request.Headers.Add("X-Authentication: " & ssoid)
    
            Dim dataStream As Stream = request.GetRequestStream()
    
            dataStream.Write(byteArray, 0, byteArray.Length)
    
            [COLOR="Red"]Dim response As WebResponse = request.GetResponse()[/COLOR]
    
            dataStream = response.GetResponseStream()
    
            Dim reader As New StreamReader(dataStream)
    
            Dim responseFromServer As String = reader.ReadToEnd
    
            Return responseFromServer
    
        End Function
    
        'Classes and function for MarketCatalogue request
        Public Class MarketCatalogueRequest
            Public jsonrpc As String = "2.0"
    
            Public method As String = "SportsAPING/v1.0/listMarketCatalogue"
    
            Public params As New Params
    
            Public Id As Integer = 1
    
        End Class
    
        Public Class Params
    
            Public filter As New Filter
    
            Public sort As String = "FIRST_TO_START"
    
            Public maxResults As String = "200"
    
            Public marketProjection As New List(Of String)
    
        End Class
        Public Class Filter
    
            Public eventTypelds As New List(Of String)
    
            Public marketCountries As New List(Of String)
    
            Public marketTypeCodes As New List(Of String)
    
            Public marketStartTime As New StartTime
    
        End Class
    
        Public Class StartTime
    
            Public from As String
    
            Public [to] As String
    
        End Class
    
        Function SerializeMarketCatalogueRequest(ByVal requestList As  _
        List(Of MarketCatalogueRequest))
    
            Return JsonConvert.SerializeObject(requestList)
    
        End Function
    
        'Classes and function for listMarketCatalogue response
        Public Class MarketCatalogueResponse
    
            Public jsonrpc As String
    
            Public result As List(Of MarketCatalogue)
    
            Public id As Integer
    
        End Class
    
        Public Class MarketCatalogue
    
            Public marketld As String
    
            Public marketName As String
    
            Public marketStartTime As String
    
            Public totalMatched As Double
    
            Public runners As New List(Of Runners)()
    
            Public [event] As New [Event]
    
        End Class
    
        Public Class Runners
    
            Public selectionld As Integer
    
            Public runnerName As String
    
            Public handicap As Double
    
            Public sortPriority As Integer
    
        End Class
    
        Public Class [Event]
    
            Public id As Integer
    
            Public name As String
    
            Public countryCode As String
    
            Public timezone As String
    
            Public venue As String
    
            Public openDate As String
    
        End Class
    
        Function DeserializeMarketCatalogueResponse(ByVal jsonResponse As String)
    
            Return JsonConvert.DeserializeObject(Of  _
            MarketCatalogueResponse())(SendSportsReq(jsonResponse))
    
        End Function
    
    End Module
    and that the code in Form1
    Code:
    Imports System.IO
    Public Class Form1
    
        Public Sub Initialise()
    
            ListMarketCatalogue()
    
        End Sub
    
        Private Sub ListMarketCatalogue()
    
            Dim requestList As New List(Of MarketCatalogueRequest)
    
            Dim request As New MarketCatalogueRequest
    
            Dim params As New Params
    
            Dim eventTypelds As New List(Of String)
    
            eventTypelds.Add("7")
    
            params.filter.eventTypelds = eventTypelds
    
            Dim marketCountries As New List(Of String)
    
            marketCountries.Add("GB")
    
            params.filter.marketCountries = marketCountries
    
            Dim marketProjection As New List(Of String)
    
            marketProjection.Add("MARKET_START_TIME")
    
            marketProjection.Add("RUNNER_DESCRIPTION")
    
            marketProjection.Add("EVENT")
    
            params.marketProjection = marketProjection
    
            Dim marketTypeCodes As New List(Of String)
    
            marketTypeCodes.Add("WIN")
    
            params.filter.marketTypeCodes = marketTypeCodes
    
            Dim marketStartTime As New StartTime
    
            If Today.IsDaylightSavingTime() Then
    
                marketStartTime.from = Format(Date.Now, "yyyy-MM-dd") & "T" & _
                    Format(Now.AddHours(-1), "Long Time") & "Z"
            Else
    
                marketStartTime.from = Format(Date.Now, "yyyy-MM-dd") & "T" & _
                    Format(Now, "Long Time") & "Z"
            End If
    
            marketStartTime.to = Today.ToString("u").Replace(" ", "T").Replace("00:00", "23:00")
    
            params.filter.marketStartTime = marketStartTime
    
            request.params = params
    
            requestList.Add(request)
    
            Dim allMarkets() As MarketCatalogueResponse
    
            allMarkets = _
            DeserializeMarketCatalogueResponse(SerializeMarketCatalogueRequest(requestList))
    
            For n = 0 To allMarkets(0).result.Count - 1
    
                For m = 0 To allMarkets(0).result(n).runners.Count - 1
                    Dim course() As String
    
                    course = Split(allMarkets(0).result(n).event.name)
    
                    Print(Format(allMarkets(0).result(n).marketStartTime, "Short Time") & " " & _
                        course(0) & " " & allMarkets(0).result(n).marketName & " " & _
                    allMarkets(0).result(n).runners.Item(m).runnerName)
    
                Next
    
            Next
    
        End Sub
    End Class
    I can not find the error
    Thanks for your help
    Last edited by nestor1971; 16-02-2016, 06:44 PM.
Working...
X