You can use the RESTful API provided by your Iron Speed Designer generated Provider in any other application created without help of Designer. In order to do so we have created a class called “JSONDataSouce” which can be used to send a request to the Provider generated using Iron Speed Designer.
RestfulEnabled – True
RestfulHost – Provider URL
RestfulEnforcePublicPrivateKey – True/ False (Based on Restful Provider settings)
RestfulEnforceEncryption – True/False (Based on Restful Provider settings)
RestfulPublicKey and RestfulPrivateKey – Generate keys using Provider’s KeyGenerater.aspx
Please note that only the .NET 4.5 framework is supported. So navigate to Iron Speed Designer installation folder and copy BaseClasses.dll file from the \BaseClasses\Bin\vs2013 or vs2012 based on which visual studio you are using.
Use classes and properties as described below
Dim jt As JSONTable = New JSONTable()
jt.PageSize = 8
jt.PageIndex = 1
jt.TotalRows = 16
jt.TableName = "Categories"
jt.JSelectColumns = New List(Of JTableSelectColumn)()
Dim jts As JTableSelectColumn = New JTableSelectColumn()
jts.ColumnName = "CategoryID"
jt.JSelectColumns.Add(jts)
Dim jts1 As JTableSelectColumn = New JTableSelectColumn()
jts1.ColumnName = "CategoryName"
jt.JSelectColumns.Add(jts1)
jt.JOrderByList = New List(Of JOrderBy)()
Dim jo As JOrderBy = New JOrderBy()
jo.ColumnName = "CategoryName"
jo.OrderDirection = "Desc"
jt.JOrderByList.Add(jo)
Dim data As String = jt.PostRequest("PostGetRecordListForTable", "CommonRestful")
Once you have the record, you have to parse through it. Here we have a Product class which is used for creating a list of records
Dim productsList As New List(Of Products)
Dim results As JArray = JArray.Parse(CStr(JsonConvert.DeserializeObject(data)))
If results.Count <> 0 Then
For i As Integer = 0 To results.Count - 1
Dim recVals As List(Of JToken) = results(i).Children().ToList()
Dim prod As Products = New Products()
prod.ProductName = recVals(0)
prod.ProductID = recVals(1)
productsList.Add(prod)
Next
End If
Dim jtForCount As JSONTable = New JSONTable()
jtForCount.TableName = "Products"
jtForCount.JWhereClause = "CategoryID=" & DropDownList1.SelectedValue
jtForCount.JOrderByList = New List(Of JOrderBy)()
Dim joForCount As JOrderBy = New JOrderBy()
joForCount.ColumnName = "ProductName"
joForCount.OrderDirection = "Desc"
jtForCount.JOrderByList.Add(joForCount)
jtForCount.JGroupByList = New List(Of JTableGroupBy)()
Dim jgForCount As JTableGroupBy = New JTableGroupBy()
jgForCount.ColumnName = "ProductName"
jtForCount.JGroupByList.Add(jgForCount)
Dim dataForCount As String = jtForCount.PostRequest("PostGetCountForTable", "CommonRestful")
Dim jr As JSONRecord = New JSONRecord()
jr.TableName = "Products"
jr.JRecordValues = New List(Of JRecordValue)()
Dim jRV As New JRecordValue()
jRV.ColumnName = "ProductID"
jRV.ColumnValue = "1"
jr.JRecordValues.Add(jRV)
Dim id As String = jr.PostRequest("PostDeleteForRecord", "CommonRestful")
Dim jr As JSONRecord = New JSONRecord()
jr.TableName = "Products"
Dim row As GridViewRow = GridProduct.Rows(e.RowIndex)
Dim uiPN As TextBox = row.FindControl("txtProductName")
jr.JRecordValues = New List(Of JRecordValue)()
Dim jRV As New JRecordValue()
jRV.ColumnName = "ProductID"
jRV.ColumnValue = <UIControlName>.Value
jr.JRecordValues.Add(jRV)
jRV = New JRecordValue()
jRV.ColumnName = "ProductName"
jRV.ColumnValue = <UIControlName>.Text
jr.JRecordValues.Add(jRV)
jr.IsExistsInDatabase = True
Dim id As String = jr.PostRequest("PostEditForRecord", "CommonRestful")