Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports ymp.Utility.Services.Exchange
- Partial Public Class ExchangeServiceSetup
- Inherits YMAdminPage
- #Region "Constants"
- Private Const ScreenId As Integer = enAdminScreens.ExchangeSetup
- #End Region
- #Region "Enums"
- Private Enum enExchangeSetupStage
- Start
- Autodiscover
- ManualSetup
- ConnectionError
- Complete
- End Enum
- #End Region
- #Region "Properties"
- Private Property CurrentStage() As enExchangeSetupStage
- Get
- If ViewState("CurrentStage") Is Nothing Then
- ViewState("CurrentStage") = enExchangeSetupStage.Start
- End If
- Return CType(ViewState("CurrentStage"), enExchangeSetupStage)
- End Get
- Set(ByVal value As enExchangeSetupStage)
- ViewState("CurrentStage") = value
- End Set
- End Property
- #End Region
- #Region "Page Events"
- Private Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
- Me.Master.ScreenId = ScreenId
- End Sub
- Private Sub ExchangeServiceSetup_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
- HideAllContent()
- ShowPage()
- End Sub
- #End Region
- #Region "Functions"
- Private Sub HideAllContent()
- ' Hide placeholders
- phExchangeSetup.Visible = False
- phAutodiscover.Visible = False
- phManualSetup.Visible = False
- phError.Visible = False
- phSuccess.Visible = False
- ' Hide buttons
- btnNext.Visible = False
- btnPrev.Visible = False
- btnCancel.Visible = False
- btnConnect.Visible = False
- btnFinish.Visible = False
- End Sub
- Private Sub ShowPage()
- Select Case CurrentStage
- Case enExchangeSetupStage.Start
- phExchangeSetup.Visible = True
- btnNext.Visible = True
- btnCancel.Visible = True
- Case enExchangeSetupStage.Autodiscover
- phAutodiscover.Visible = True
- btnPrev.Visible = True
- btnConnect.Visible = True
- btnCancel.Visible = True
- Case enExchangeSetupStage.ManualSetup
- phManualSetup.Visible = True
- btnPrev.Visible = True
- btnConnect.Visible = True
- btnCancel.Visible = True
- Case enExchangeSetupStage.ConnectionError
- phError.Visible = True
- btnPrev.Visible = True
- btnCancel.Visible = True
- Case enExchangeSetupStage.Complete
- phSuccess.Visible = True
- btnFinish.Visible = True
- End Select
- End Sub
- Private Sub AutoDiscover()
- Dim emailAdd As String = txtEmail.Text
- Dim accName As String = txtAccName.Text
- Dim pass As String = txtPass.Text
- '
- Dim conToExchange As New ExchangeServiceProvider()
- conToExchange.Credentials = New System.Net.NetworkCredential(accName, pass)
- conToExchange.AutoDiscover(emailAdd)
- ' Attempt to Autodiscover the Exchange
- If conToExchange.IsConnected Then
- ' Store the settings
- Dim record As Types.ServiceProvider = Me.Master.BDAL.NotificationBL.GetServiceProviderByCapability(enServiceProviderCapability.Calendar)
- record.ServiceProviderTypeId = enServiceProviderTypes.ExchangeServer
- record.Url = conToExchange.Url.AbsoluteUri
- record.Version = conToExchange.ServerVersion.ToString()
- record.Username = accName
- record.Password = pass
- Me.Master.BDAL.NotificationBL.Update(record)
- ' Go to the Success Page
- CurrentStage = enExchangeSetupStage.Complete
- Else
- ' Display the error to the user
- divError.InnerHtml = conToExchange.LastErrorMessage
- ' Go to the Error Page
- CurrentStage = enExchangeSetupStage.ConnectionError
- End If
- End Sub
- Private Sub ManualConnect()
- Dim accNameM As String = txtAccName2.Text
- Dim passM As String = txtPass2.Text
- Dim servURL As String = txtURL.Text
- ' Create the Exchange Service
- Dim exServerVer As ExchangeServiceProvider.ExchangeServerVersion
- Select Case ddlExVersion.SelectedIndex
- Case 0
- exServerVer = ExchangeServiceProvider.ExchangeServerVersion.Exchange2010SP1
- Case 1
- exServerVer = ExchangeServiceProvider.ExchangeServerVersion.Exchange2010
- Case 2
- exServerVer = ExchangeServiceProvider.ExchangeServerVersion.Exchange2007SP1
- End Select
- Dim conToExchange As New ExchangeServiceProvider(exServerVer)
- conToExchange.Credentials = New System.Net.NetworkCredential(accNameM, passM)
- ' Attempt to connect to the Exchange
- Dim connected As Integer = conToExchange.Connect(servURL)
- ' If the connection was successfull
- If connected = 0 Then
- Dim result As Integer = conToExchange.IsImpersonationConfigured("gillian.mcguire@test.local")
- If result = 0 Then
- ' Store the settings
- Dim record As Types.ServiceProvider = Me.Master.BDAL.NotificationBL.GetServiceProviderByCapability(enServiceProviderCapability.Calendar)
- record.ServiceProviderTypeId = enServiceProviderTypes.ExchangeServer
- record.Url = servURL
- record.Version = exServerVer.ToString()
- record.Username = accNameM
- record.Password = passM
- Me.Master.BDAL.NotificationBL.Update(record)
- ' Move to the next Page
- CurrentStage = enExchangeSetupStage.Complete
- Else
- ' Display the error to the user
- divError.InnerHtml = conToExchange.LastErrorMessage
- ' Show the Error Page
- CurrentStage = enExchangeSetupStage.ConnectionError
- End If
- Else
- ' Display the error to the user
- divError.InnerHtml = conToExchange.LastErrorMessage
- ' Show the Error Page
- CurrentStage = enExchangeSetupStage.ConnectionError
- End If
- End Sub
- #End Region
- #Region "Control Events"
- Private Sub btnPrev_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnPrev.Click
- Select Case CurrentStage
- Case enExchangeSetupStage.Autodiscover
- CurrentStage = enExchangeSetupStage.Start
- Case enExchangeSetupStage.ManualSetup
- CurrentStage = enExchangeSetupStage.Start
- Case enExchangeSetupStage.ConnectionError
- If rblSetupType.SelectedIndex = 0 Then
- CurrentStage = enExchangeSetupStage.Autodiscover
- Else
- CurrentStage = enExchangeSetupStage.ManualSetup
- End If
- End Select
- End Sub
- Private Sub btnNext_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnNext.Click
- If rblSetupType.SelectedIndex = 0 Then
- CurrentStage = enExchangeSetupStage.Autodiscover
- Else
- CurrentStage = enExchangeSetupStage.ManualSetup
- End If
- End Sub
- Private Sub btnConnect_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnConnect.Click
- Select Case CurrentStage
- Case enExchangeSetupStage.Autodiscover
- AutoDiscover()
- Case enExchangeSetupStage.ManualSetup
- ManualConnect()
- End Select
- End Sub
- Private Sub btnFinish_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnFinish.Click
- Response.Redirect("OutlookIntegration.aspx")
- End Sub
- Private Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnCancel.Click
- Response.Redirect("OutlookIntegration.aspx")
- End Sub
- #End Region
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement