
Partial Class generate_print_driver_step1
    Inherits System.Web.UI.Page

    Public printItInstallerService As New com.racadtech.services.PrintDriverGenerator()
    Public ticket As New com.racadtech.services.Ticket1()

    Private _user As MembershipUser
    Private _userProfile As ProfileCommon
    Private _webWS As New WebWS
    Private _storeId
    Private _commonFunctions As CommonFunctions = New CommonFunctions()

    Public _selectedLanguage As String = ""

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        _user = Membership.GetUser()

        If Not Request.QueryString("uid") Is Nothing Then   ' HeadOffice User generates print driver for some Store
            If Request.QueryString("uid").ToString <> "" Then
                Dim _guid = New Guid(Request.QueryString("uid"))
                _user = Membership.GetUser(_guid)
                RegeneratePDLabel.Visible = False
            End If
        End If

        _userProfile = Profile.GetProfile(_user.UserName)
        _storeId = _userProfile.StoreId

        If Request.QueryString("ShowGeneration") = "No" Then
            GenerateDriverDiv.Visible = False
        End If

        'Dim _directory = "http://pd.printitat.net/" & ConfigurationManager.AppSettings("PrintItStoreDataVirtualDirectory") & "/" & _userProfile.StoreId & "/"
        Dim _directory = ConfigurationManager.AppSettings("PrintItStoreDataPath") & "\" & _userProfile.StoreId

        'Dim logFile As System.IO.StreamWriter = System.IO.File.CreateText(_directory & "\" & "debug.txt")

        'logFile.WriteLine("[Directory] =  " & _directory)

        Dim _windowsPD As String = ""
        Dim _macPD As String = ""
        Try
            Dim _file As String
            For Each _file In System.IO.Directory.GetFiles(_directory)
                'logFile.WriteLine("[Find File : ] " & _file)
                'If (_file.StartsWith(_directory & "\GoPrint2")) Then
                'logFile.WriteLine("[Extention : ] " & _commonFunctions.GetDocumentName(_file, True, "\\").ToString().Split("\")(5).Split(".")(1))

                Dim _fileName = _commonFunctions.GetDocumentName(_file, True, "\\")
                If _fileName.Split(".")(1) = "exe" Then
                    'logFile.WriteLine("[Find Windows PD : ] " & _file)
                    _windowsPD = _fileName
                End If
                If _fileName.Split(".")(1) = "dmg" Then
                    'logFile.WriteLine("[Find Mac PD : ] " & _file)
                    _macPD = _fileName
                End If
                'End If
            Next _file
        Catch ex As Exception
            'logFile.WriteLine("[EXCEPTION] " & ex.Message)
        Finally
            'logFile.Close()
            'logFile.Dispose()
        End Try


        If _windowsPD = "" And _macPD = "" Then
            '_________________
            'Check if user Creates PrintDriverInterface, if not so redirect him to the PrintDriverInterfacePage
            If _webWS.GetPrintDriverInterfaceByStoreId(_userProfile.StoreId).Tables(0).Rows.Count = 0 Then
                PrintDriverLinksDiv.Visible = False
                NoPrintDriverLabel.Visible = False
                If Session("PartnerId") IsNot Nothing Then
                    NoPrintDriverInterfaceLabel.Visible = False
                    PrintDriverInterfaceLink.Visible = False
                    NoPrintDriverInterfaceForGraventLabel.Visible = True
                Else
                    NoPrintDriverInterfaceLabel.Visible = True
                    PrintDriverInterfaceLink.Visible = True
                    NoPrintDriverInterfaceForGraventLabel.Visible = False
                End If
                GeneratePDImageButton.Enabled = False
            Else
                PrintDriverLinksDiv.Visible = False
                If Session("PartnerId") IsNot Nothing Then
                    NoPrintDriverLabel.Visible = False
                Else
                    NoPrintDriverLabel.Visible = True
                End If
                NoPrintDriverInterfaceLabel.Visible = False
                PrintDriverInterfaceLink.Visible = False
                GeneratePDImageButton.Enabled = True
            End If
            '__________________

        Else
            If Not Request.QueryString("uid") Is Nothing Then
                PrintDriverLinksDiv.Visible = False
            Else

                If _windowsPD <> "" Then
                    WindowsPDLink.Visible = True
                    WindowsPDLink2.Visible = True
                    WindowsPDLink.NavigateUrl = "/" & ConfigurationManager.AppSettings("PrintItStoreDataVirtualDirectory") & "/" & _userProfile.StoreId & "/" & _windowsPD
                    WindowsPDLink2.NavigateUrl = "/" & ConfigurationManager.AppSettings("PrintItStoreDataVirtualDirectory") & "/" & _userProfile.StoreId & "/" & _windowsPD
                End If
                If _macPD <> "" Then
                    MacPDLink.Visible = True
                    MacPDLink2.Visible = True
                    MacPDLink.NavigateUrl = "/" & ConfigurationManager.AppSettings("PrintItStoreDataVirtualDirectory") & "/" & _userProfile.StoreId & "/" & _macPD
                    MacPDLink2.NavigateUrl = "/" & ConfigurationManager.AppSettings("PrintItStoreDataVirtualDirectory") & "/" & _userProfile.StoreId & "/" & _macPD
                End If

            End If

        End If


    End Sub

    Protected Sub GeneratePDImageButton_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles GeneratePDImageButton.Click

        NoPrintDriverLabel.Visible = False
        NoPrintDriverInterfaceLabel.Visible = False
        PrintDriverInterfaceLink.Visible = False

        Dim _activationId
        If _webWS.GetActivationDataSetByUserId(_user.ProviderUserKey).Tables(0).Rows.Count > 0 Then
            _activationId = _webWS.GetActivationDataSetByUserId(_user.ProviderUserKey).Tables(0).Rows(0).Item("ActivationId").ToString()
        Else
            Dim _newActivationId As Guid = Guid.NewGuid()
            _webWS.InsertActivation(_user.ProviderUserKey, _userProfile.StoreId, _newActivationId.ToString(), True)
            _activationId = _newActivationId.ToString()
        End If

        Dim _printerName = PrintDriverNameTextField.Text
        'Dim _companyName = CompanyNameTextField.Text
        Dim _companyName = PrintDriverNameTextField.Text

        ticket = printItInstallerService.CreateTicket(_storeId, _activationId, _printerName, _companyName, "PrintIt", "f")

        Session("PrintItInstaller_TicketId") = ticket.TicketId
        Session("PrintItInstaller_StoreId") = ticket.StoreId
        Session("PrintItInstaller_ActivationId") = ticket.ActivationId
        Session("PrintItInstaller_PrinterName") = ticket.PrinterName
        Session("PrintItInstaller_CompanyName") = ticket.CompanyName
        Session("PrintItInstaller_CompanyNameShort") = ticket.CompanyNameShort
        Session("PrintItInstaller_IsSDCIntegrated") = ticket.IsSDCIntegrated
        Session("PrintItInstaller_WindowsDriverLocation") = ticket.WindowsDriverLocation
        Session("PrintItInstaller_MacDriverLocation") = ticket.MacDriverLocation
        Session("PrintItInstaller_QueuePosition") = ticket.QueuePosition
        Session("PrintItInstaller_IsComplete") = ticket.IsComplete

        Response.Redirect("~/generate_print_driver_step2.aspx")
    End Sub
End Class
