Imports Page1Solutions.VirtualCounselor.DataObjects
Imports Page1Solutions.VirtualCounselor.FormHandler
Imports System.Collections.Generic
Partial Class theBennett
Inherits System.Web.UI.Page
'edit this section based on the client
Private url As String = "http://www.carolforpeace.com"
Private Shadows clientID As Int16 = 386
Private _errorPage As String = "error.html"
Private _thankYouPage As String = "thanks.html"
'end edit section
Private reg As String = "http(s)?://([\w-]+\.)+[\w-]+"
Private Shadows ReadOnly Property ErrorPage() As String
Get
Dim re As Regex = New Regex(reg, RegexOptions.IgnoreCase)
Dim m As Match = re.Match(url)
Return m.ToString & "/" & _errorPage
End Get
End Property
Private ReadOnly Property ThankYouPage() As String
Get
Dim re As Regex = New Regex(reg, RegexOptions.IgnoreCase)
Dim m As Match = re.Match(url)
Return m.ToString & "/" & _thankYouPage
End Get
End Property
Private _accessID As Guid
Protected ReadOnly Property AccessID() As Guid
Get
If ViewState("AccessID") Is Nothing Then
_accessID = Guid.NewGuid
ViewState("AccessID") = _accessID
Else
_accessID = ViewState("AccessID")
End If
Return _accessID
End Get
End Property
Private formFieldID As Integer
Private formHandler As New FormProcessor
Private _formID As String
Protected ReadOnly Property FormID() As String
Get
If ViewState("FormID") Is Nothing Then
_formID = Request.Form("hfFormID")
ViewState("FormID") = Request.Form("hfFormID")
Else
_formID = ViewState("FormID")
End If
Return _formID
End Get
End Property
Private formHandlerResponse As objVCResponse
Private _formPanel As Panel = Nothing
Protected ReadOnly Property FormPanel() As Panel
Get
If _formPanel Is Nothing Then
_formPanel = Page.FindControl("pnl" & FormID)
End If
Return _formPanel
End Get
End Property
Private _pageReferrer As String
Public Property PageReferrer() As String
Get
If Not ViewState("PageReferrer") Is Nothing Then
_pageReferrer = ViewState("PageReferrer")
End If
Return _pageReferrer
End Get
Set(ByVal value As String)
ViewState("PageReferrer") = value
_pageReferrer = value
End Set
End Property
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Try
If Request.Form("hfFormID") Is Nothing Then
Response.Redirect(ErrorPage, False)
End If
Catch ex As Exception
Dim mailError As New Page1Solutions.VirtualCounselor.Mail.MailError
mailError.SendFormHandlerError("FormHandler 1", ex.Message, ex.StackTrace & "
ClientID: " & clientID)
Response.Redirect(ErrorPage, False)
Return
End Try
Try
If Session("FormCollection") Is Nothing Then
Session.Remove("FormCollection")
End If
Catch ex As Exception
Dim mailError As New Page1Solutions.VirtualCounselor.Mail.MailError
mailError.SendFormHandlerError("FormHandler 2", ex.Message, ex.StackTrace & "
ClientID: " & clientID)
Response.Redirect(ErrorPage, False)
Return
End Try
Try
If Not Request.ServerVariables("HTTP_REFERER") Is Nothing Then
PageReferrer = Request.ServerVariables("HTTP_REFERER")
Else
PageReferrer = "N/A"
End If
Catch ex As Exception
Dim mailError As New Page1Solutions.VirtualCounselor.Mail.MailError
mailError.SendFormHandlerError("FormHandler 3", ex.Message, ex.StackTrace & "
ClientID: " & clientID)
Response.Redirect(ErrorPage, False)
Return
End Try
Dim stringBuilder As New StringBuilder
Dim i As Integer = 0
Dim formCollection As New List(Of objFormSubmission)
For Each item As String In Request.Form
stringBuilder.Append("Item " & item & "
")
Next
Try
If Not Request.Form Is Nothing Then
For Each item As String In Request.Form
If (Not item.Contains("hfFormID")) And (CType(Request.Form.Keys(i), String)).Contains(FormID) Then
If Not Request.Form(i) Is Nothing Then
formCollection.Add(New objFormSubmission(Request.Form.Keys(i), Server.HtmlEncode(Request.Form(i))))
End If
End If
i += 1
Next
End If
Catch ex As Exception
Dim mailError As New Page1Solutions.VirtualCounselor.Mail.MailError
mailError.SendFormHandlerError("FormHandler 4", ex.Message, ex.StackTrace & "
ClientID: " & clientID & "
i: " & i & "
Form: " & stringBuilder.ToString)
Response.Redirect(ErrorPage, False)
Return
End Try
If formCollection.Count = 0 Then
Response.Redirect(ErrorPage, False)
Return
Else
'Validate html form
formHandlerResponse = New objVCResponse
Try
formHandlerResponse = formHandler.ProcessForm(clientID, FormID, formCollection, False, PageReferrer, Request.UserHostAddress, Session.SessionID, AccessID)
Catch ex As Exception
Dim mailError As New Page1Solutions.VirtualCounselor.Mail.MailError
mailError.SendFormHandlerError("FormHandler 5", ex.Message, ex.StackTrace & "
ClientID: " & clientID)
Response.Redirect(ErrorPage, False)
Return
End Try
If formHandlerResponse.Result = -1 Then
Response.Redirect(ErrorPage, False)
Return
ElseIf formHandlerResponse.Result = 0 Then
If Not FormPanel Is Nothing Then
'Show the form
FormPanel.Visible = True
'Populate Controls
Try
Populate_Controls(formCollection)
Catch ex As Exception
Dim mailError As New Page1Solutions.VirtualCounselor.Mail.MailError
mailError.SendFormHandlerError("FormHandler 6", ex.Message, ex.StackTrace & "
ClientID: " & clientID)
End Try
'Set Attributes
Try
Set_Attributes(formCollection)
Catch ex As Exception
Dim mailError As New Page1Solutions.VirtualCounselor.Mail.MailError
mailError.SendFormHandlerError("FormHandler 7", ex.Message, ex.StackTrace & "
ClientID: " & clientID)
End Try
Else
'panel doesn't exist
'redirect the user to the thank you page (false positive)
Response.Redirect(ThankYouPage, False)
Return
End If
Session.Remove("FormCollection")
Dim errors As New StringBuilder
errors.Append("