Advertisement
Guest User

Untitled

a guest
Jun 30th, 2015
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 8.14 KB | None | 0 0
  1. Imports ymp.Utility.Services.Exchange
  2.  
  3. Partial Public Class ExchangeServiceSetup
  4.     Inherits YMAdminPage
  5.  
  6. #Region "Constants"
  7.  
  8.     Private Const ScreenId As Integer = enAdminScreens.ExchangeSetup
  9.  
  10. #End Region
  11.  
  12. #Region "Enums"
  13.  
  14.     Private Enum enExchangeSetupStage
  15.         Start
  16.         Autodiscover
  17.         ManualSetup
  18.         ConnectionError
  19.         Complete
  20.     End Enum
  21.  
  22. #End Region
  23.  
  24. #Region "Properties"
  25.  
  26.     Private Property CurrentStage() As enExchangeSetupStage
  27.         Get
  28.             If ViewState("CurrentStage") Is Nothing Then
  29.                 ViewState("CurrentStage") = enExchangeSetupStage.Start
  30.             End If
  31.             Return CType(ViewState("CurrentStage"), enExchangeSetupStage)
  32.         End Get
  33.         Set(ByVal value As enExchangeSetupStage)
  34.             ViewState("CurrentStage") = value
  35.         End Set
  36.     End Property
  37.  
  38. #End Region
  39.  
  40. #Region "Page Events"
  41.  
  42.     Private Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
  43.         Me.Master.ScreenId = ScreenId
  44.     End Sub
  45.  
  46.     Private Sub ExchangeServiceSetup_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
  47.         HideAllContent()
  48.         ShowPage()
  49.     End Sub
  50.  
  51. #End Region
  52.  
  53. #Region "Functions"
  54.  
  55.     Private Sub HideAllContent()
  56.         ' Hide placeholders
  57.         phExchangeSetup.Visible = False
  58.         phAutodiscover.Visible = False
  59.         phManualSetup.Visible = False
  60.         phError.Visible = False
  61.         phSuccess.Visible = False
  62.  
  63.         ' Hide buttons
  64.         btnNext.Visible = False
  65.         btnPrev.Visible = False
  66.         btnCancel.Visible = False
  67.         btnConnect.Visible = False
  68.         btnFinish.Visible = False
  69.     End Sub
  70.  
  71.     Private Sub ShowPage()
  72.         Select Case CurrentStage
  73.             Case enExchangeSetupStage.Start
  74.                 phExchangeSetup.Visible = True
  75.                 btnNext.Visible = True
  76.                 btnCancel.Visible = True
  77.             Case enExchangeSetupStage.Autodiscover
  78.                 phAutodiscover.Visible = True
  79.                 btnPrev.Visible = True
  80.                 btnConnect.Visible = True
  81.                 btnCancel.Visible = True
  82.             Case enExchangeSetupStage.ManualSetup
  83.                 phManualSetup.Visible = True
  84.                 btnPrev.Visible = True
  85.                 btnConnect.Visible = True
  86.                 btnCancel.Visible = True
  87.             Case enExchangeSetupStage.ConnectionError
  88.                 phError.Visible = True
  89.                 btnPrev.Visible = True
  90.                 btnCancel.Visible = True
  91.             Case enExchangeSetupStage.Complete
  92.                 phSuccess.Visible = True
  93.                 btnFinish.Visible = True
  94.         End Select
  95.     End Sub
  96.  
  97.     Private Sub AutoDiscover()
  98.         Dim emailAdd As String = txtEmail.Text
  99.         Dim accName As String = txtAccName.Text
  100.         Dim pass As String = txtPass.Text
  101.         '
  102.         Dim conToExchange As New ExchangeServiceProvider()
  103.         conToExchange.Credentials = New System.Net.NetworkCredential(accName, pass)
  104.         conToExchange.AutoDiscover(emailAdd)
  105.  
  106.         ' Attempt to Autodiscover the Exchange
  107.         If conToExchange.IsConnected Then
  108.  
  109.             ' Store the settings
  110.             Dim record As Types.ServiceProvider = Me.Master.BDAL.NotificationBL.GetServiceProviderByCapability(enServiceProviderCapability.Calendar)
  111.             record.ServiceProviderTypeId = enServiceProviderTypes.ExchangeServer
  112.             record.Url = conToExchange.Url.AbsoluteUri
  113.             record.Version = conToExchange.ServerVersion.ToString()
  114.             record.Username = accName
  115.             record.Password = pass
  116.             Me.Master.BDAL.NotificationBL.Update(record)
  117.  
  118.             ' Go to the Success Page
  119.             CurrentStage = enExchangeSetupStage.Complete
  120.  
  121.         Else
  122.             ' Display the error to the user
  123.             divError.InnerHtml = conToExchange.LastErrorMessage
  124.  
  125.             ' Go to the Error Page
  126.             CurrentStage = enExchangeSetupStage.ConnectionError
  127.         End If
  128.     End Sub
  129.  
  130.     Private Sub ManualConnect()
  131.         Dim accNameM As String = txtAccName2.Text
  132.         Dim passM As String = txtPass2.Text
  133.         Dim servURL As String = txtURL.Text
  134.  
  135.         ' Create the Exchange Service
  136.         Dim exServerVer As ExchangeServiceProvider.ExchangeServerVersion
  137.         Select Case ddlExVersion.SelectedIndex
  138.             Case 0
  139.                 exServerVer = ExchangeServiceProvider.ExchangeServerVersion.Exchange2010SP1
  140.             Case 1
  141.                 exServerVer = ExchangeServiceProvider.ExchangeServerVersion.Exchange2010
  142.             Case 2
  143.                 exServerVer = ExchangeServiceProvider.ExchangeServerVersion.Exchange2007SP1
  144.         End Select
  145.         Dim conToExchange As New ExchangeServiceProvider(exServerVer)
  146.         conToExchange.Credentials = New System.Net.NetworkCredential(accNameM, passM)
  147.  
  148.  
  149.         ' Attempt to connect to the Exchange
  150.         Dim connected As Integer = conToExchange.Connect(servURL)
  151.  
  152.         ' If the connection was successfull
  153.         If connected = 0 Then
  154.  
  155.             Dim result As Integer = conToExchange.IsImpersonationConfigured("gillian.mcguire@test.local")
  156.  
  157.             If result = 0 Then
  158.                 ' Store the settings
  159.                 Dim record As Types.ServiceProvider = Me.Master.BDAL.NotificationBL.GetServiceProviderByCapability(enServiceProviderCapability.Calendar)
  160.                 record.ServiceProviderTypeId = enServiceProviderTypes.ExchangeServer
  161.                 record.Url = servURL
  162.                 record.Version = exServerVer.ToString()
  163.                 record.Username = accNameM
  164.                 record.Password = passM
  165.                 Me.Master.BDAL.NotificationBL.Update(record)
  166.  
  167.                 ' Move to the next Page
  168.                 CurrentStage = enExchangeSetupStage.Complete
  169.             Else
  170.                 ' Display the error to the user
  171.                 divError.InnerHtml = conToExchange.LastErrorMessage
  172.  
  173.                 ' Show the Error Page
  174.                 CurrentStage = enExchangeSetupStage.ConnectionError
  175.             End If
  176.         Else
  177.             ' Display the error to the user
  178.             divError.InnerHtml = conToExchange.LastErrorMessage
  179.  
  180.             ' Show the Error Page
  181.             CurrentStage = enExchangeSetupStage.ConnectionError
  182.         End If
  183.     End Sub
  184.  
  185. #End Region
  186.  
  187. #Region "Control Events"
  188.  
  189.     Private Sub btnPrev_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnPrev.Click
  190.         Select Case CurrentStage
  191.             Case enExchangeSetupStage.Autodiscover
  192.                 CurrentStage = enExchangeSetupStage.Start
  193.             Case enExchangeSetupStage.ManualSetup
  194.                 CurrentStage = enExchangeSetupStage.Start
  195.             Case enExchangeSetupStage.ConnectionError
  196.                 If rblSetupType.SelectedIndex = 0 Then
  197.                     CurrentStage = enExchangeSetupStage.Autodiscover
  198.                 Else
  199.                     CurrentStage = enExchangeSetupStage.ManualSetup
  200.                 End If
  201.         End Select
  202.     End Sub
  203.  
  204.     Private Sub btnNext_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnNext.Click
  205.         If rblSetupType.SelectedIndex = 0 Then
  206.             CurrentStage = enExchangeSetupStage.Autodiscover
  207.         Else
  208.             CurrentStage = enExchangeSetupStage.ManualSetup
  209.         End If
  210.     End Sub
  211.  
  212.     Private Sub btnConnect_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnConnect.Click
  213.         Select Case CurrentStage
  214.             Case enExchangeSetupStage.Autodiscover
  215.                 AutoDiscover()
  216.             Case enExchangeSetupStage.ManualSetup
  217.                 ManualConnect()
  218.         End Select
  219.     End Sub
  220.  
  221.     Private Sub btnFinish_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnFinish.Click
  222.         Response.Redirect("OutlookIntegration.aspx")
  223.     End Sub
  224.  
  225.     Private Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnCancel.Click
  226.         Response.Redirect("OutlookIntegration.aspx")
  227.     End Sub
  228.  
  229. #End Region
  230.  
  231. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement