Dim catalogApi
As New CatalogEntryApi()
Dim evtAPI
As New Ektron.Cms.Framework.Calendar.WebEvent()
Dim bapi As New BasketApi
Dim oAPI As New OrderApi
Dim uAPI As New CustomerApi
Dim usAPI As New UserAPI
Dim userId As Integer
Dim connStr As String = ConfigurationManager.ConnectionStrings("DbConnection").ConnectionString
Dim myConnection As SqlConnection = New SqlConnection(connStr)
Dim sql As String = "select something from something "
Dim myCommand As SqlCommand = New SqlCommand(sql, myConnection)
Dim dr As SqlDataReader
Try
‘ Execute the command
myConnection.Open()
dr = myCommand.ExecuteReader()
‘ Make sure a record was returned
While dr.Read()
userId = usAPI.GetUserByUsername(dr("username")).Id
Dim udata As CustomerData = uAPI.GetItem(userId)
Dim oData As New OrderData
Dim aApi As New AddressApi
Dim cAPI As New CountryApi
Dim rApi As New RegionApi
‘set address from DB
Dim adata As New AddressData
Dim cdata As New CountryData
Dim rdata As New RegionData
adata.AddressLine1 = dr("street")
adata.City = dr("city").ToString
‘set country data
cdata = cAPI.GetItem(840) ‘USA
adata.Country = cdata
adata.IsValidated = True
adata.Name = dr("first_name").ToString & " " & dr("last_name").ToString
adata.Phone = dr("daytime_phone").ToString
If (dr("zip").ToString = "") Then
adata.PostalCode = "00000"
Else
adata.PostalCode = dr("zip").ToString
End If
‘set region data
Dim rCriterial As New Ektron.Cms.Common.Criteria(Of RegionProperty)
Dim rRegion As Generic.List(Of RegionData)
rCriterial.AddFilter(RegionProperty.AlphaCode, CriteriaFilterOperator.EqualTo, dr("state"))
rRegion = rApi.GetList(rCriterial)
For Each r As RegionData In rRegion
rdata = rApi.GetItem(r.Id)
Next
‘if state does not match, set it to maryland
If rdata.Id = 0 Then
rdata = rApi.GetItem(21)
End If
adata.Region = rdata
adata.Validate()
‘add address to customer
Dim aID As Long = aApi.Add(adata)
uAPI.ChangeBillingAddress(userId, aID)
uAPI.ChangeShippingAddress(userId, aID)
‘Default payment CC for everyone
Dim payment As New CreditCardPayment()
Dim expDate As New CCExpirationDate
expDate.Month = EkEnumeration.CCExpirationMonth.July
expDate.Year = 2013
payment.ExpirationDate = expDate
payment.Number = "4007000000000"
payment.CCID = "000"
Dim basket As Ektron.Cms.Commerce.Basket
Try
basket = bapi.GetDefaultBasket(udata.Id)
‘find class ID based on SKU
Dim cCriteria As New Ektron.Cms.Common.Criteria(Of EntryProperty)
Dim cClass As Generic.List(Of EntryData)
Dim classID As Integer
cCriteria.AddFilter(EntryProperty.Sku, Ektron.Cms.Common.CriteriaFilterOperator.EqualTo, dr("event_id").ToString)
cClass = catalogApi.GetList(cCriteria)
For Each c As EntryData In cClass
basket.AddProduct(c.Id)
classID = c.Id
Next
basket.ShippingAddressId = udata.ShippingAddressId
‘process order
oData = oAPI.PlaceOrder(basket.Id, userId, aID, aID, basket.ShippingMethodId, payment, "", "")
‘update class inventory
Dim iAPI As New InventoryApi()
Dim iData As InventoryData
iData = iAPI.GetInventory(classID)
iData.UnitsInStock = iData.UnitsInStock – 1
iAPI.SaveInventory(iData)
‘add seat names to class order
Dim contentApi As New Ektron.Cms.ContentAPI
contentApi.AddContentRating(classID, userId, 0, dr("seat_name") & " – " & dr("seat_email"), True)
lblMessage.Text += "<br> great success" & oData.Customer.UserName & " OrderID:" & oData.Id & " eventID:" & dr("event_id").ToString
Catch ex As Exception
lblMessage.Text += "<br>" & oData.Customer.UserName & ex.Message
End Try
End While
Catch ex As Exception
lblMessage.Text += "<br>" & ex.Message
End Try