Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

103 wiersze
3.8KB

  1. <%
  2. Class RequestOrderController_Class
  3. Private m_useLayout
  4. Private m_title
  5. Private Sub Class_Initialize()
  6. m_useLayout = True
  7. m_title = "Request an Order"
  8. End Sub
  9. Public Property Get useLayout
  10. useLayout = m_useLayout
  11. End Property
  12. Public Property Let useLayout(v)
  13. m_useLayout = v
  14. End Property
  15. Public Property Get Title
  16. Title = m_title
  17. End Property
  18. Public Property Let Title(v)
  19. m_title = v
  20. End Property
  21. '-------------------------------------------------------------------------------------------------------------------
  22. ' GET: show the "request an order" form (email + jurisdiction number)
  23. '-------------------------------------------------------------------------------------------------------------------
  24. Public Sub Index()
  25. Dim formValues, emailValue, jurisdictionValue, csrfToken
  26. Set formValues = FormCache().DeserializeForm("RequestOrder")
  27. FormCache().ClearForm "RequestOrder"
  28. emailValue = ""
  29. jurisdictionValue = ""
  30. If Not (formValues Is Nothing) Then
  31. If formValues.Exists("Email") Then emailValue = formValues("Email")
  32. If formValues.Exists("JurisdictionNumber") Then jurisdictionValue = formValues("JurisdictionNumber")
  33. End If
  34. csrfToken = HTMLSecurity().GetAntiCSRFToken("RequestOrder")
  35. %>
  36. <!--#include file="../views/RequestOrder/index.asp" -->
  37. <%
  38. End Sub
  39. '-------------------------------------------------------------------------------------------------------------------
  40. ' POST: validate submission, create the order record, email a continuation link
  41. '-------------------------------------------------------------------------------------------------------------------
  42. Public Sub Create()
  43. MVC.RequirePost
  44. Dim csrfToken : csrfToken = Request.Form("csrf_token")
  45. If Not HTMLSecurity().IsValidAntiCSRFToken("RequestOrder", csrfToken) Then
  46. HTMLSecurity().ClearAntiCSRFToken "RequestOrder"
  47. Flash().AddError "Your form session expired. Please try again."
  48. Response.Redirect Routes().AppURL & "request-order"
  49. Exit Sub
  50. End If
  51. HTMLSecurity().ClearAntiCSRFToken "RequestOrder"
  52. Dim email, jurisdictionNumber
  53. email = Trim(Request.Form("Email"))
  54. jurisdictionNumber = Trim(Request.Form("JurisdictionNumber"))
  55. Dim errorList() : ReDim errorList(-1)
  56. If Not IsValidEmail(email) Then AddValidationError errorList, "Please enter a valid email address."
  57. If Len(jurisdictionNumber) = 0 Then
  58. AddValidationError errorList, "Please enter your jurisdiction number."
  59. ElseIf Not IsValidJurisdictionNumber(jurisdictionNumber) Then
  60. AddValidationError errorList, "That jurisdiction number could not be verified."
  61. End If
  62. If UBound(errorList) >= 0 Then
  63. Dim i
  64. For i = 0 To UBound(errorList)
  65. Flash().AddError errorList(i)
  66. Next
  67. FormCache().SerializeForm "RequestOrder", Request.Form
  68. Response.Redirect Routes().AppURL & "request-order"
  69. Exit Sub
  70. End If
  71. Dim token : token = OrdersRepository().CreateOrder(email, jurisdictionNumber)
  72. OrderMailer().SendContinuationEmail email, token
  73. Flash().Success = "Check your email for a link to continue your order."
  74. Response.Redirect Routes().AppURL & "request-order"
  75. End Sub
  76. End Class
  77. Dim RequestOrderController_Class__Singleton
  78. Function RequestOrderController()
  79. If IsEmpty(RequestOrderController_Class__Singleton) Then
  80. Set RequestOrderController_Class__Singleton = New RequestOrderController_Class
  81. End If
  82. Set RequestOrderController = RequestOrderController_Class__Singleton
  83. End Function
  84. %>

Powered by TurnKey Linux.