Imports Microsoft.VisualBasic Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports DevExpress.ExpressApp.Win Imports DevExpress.ExpressApp.Updating Imports DevExpress.ExpressApp Imports System.Configuration Imports DevExpress.ExpressApp.Security Imports SISBusiness.Module Imports DevExpress.Persistent.BaseImpl Imports SISBusiness.Module.Win Imports DevExpress.Xpo Imports DevExpress.Xpo.DB Imports System.Net Imports System.IO Imports System.Text Imports Newtonsoft.Json Imports SISBusiness.Module.StaticClass Imports DevExpress.ExpressApp.Xpo Partial Public Class SISBusinessWindowsFormsApplication Inherits WinApplication Implements IApplicationFactory Friend WithEvents SystemModule1 As DevExpress.ExpressApp.SystemModule.SystemModule Protected Overrides Sub ReadLastLogonParametersCore(ByVal storage As DevExpress.ExpressApp.Utils.SettingsStorage, ByVal logonObject As Object) Dim standardLogonParameters As AuthenticationStandardLogonParameters = TryCast(logonObject, AuthenticationStandardLogonParameters) If (standardLogonParameters IsNot Nothing) AndAlso String.IsNullOrEmpty(standardLogonParameters.UserName) Then MyBase.ReadLastLogonParametersCore(storage, logonObject) Try TryCast(logonObject, ChangeLogon).DBConnection = TryCast(storage, DevExpress.ExpressApp.Utils.SettingsStorageOnString).Values("\DBConnection") TryCast(logonObject, ChangeLogon).SQLServer = TryCast(storage, DevExpress.ExpressApp.Utils.SettingsStorageOnString).Values("\SQLServer") TryCast(logonObject, ChangeLogon).Company = TryCast(storage, DevExpress.ExpressApp.Utils.SettingsStorageOnString).Values("\Company") Select Case TryCast(storage, DevExpress.ExpressApp.Utils.SettingsStorageOnString).Values("\SQLType") Case "MSSQL" TryCast(logonObject, ChangeLogon).SQLType = eSQLType.MSSQL Case "PostgreSQL" TryCast(logonObject, ChangeLogon).SQLType = eSQLType.PostgreSQL Case "MySQL" TryCast(logonObject, ChangeLogon).SQLType = eSQLType.MySQL End Select Catch End Try End If End Sub Protected Overrides Sub OnLoggingOn(ByVal args As LogonEventArgs) Dim connstr As String = "" Dim _ChangeLogon As ChangeLogon MyBase.OnLoggingOn(args) _ChangeLogon = TryCast(args.LogonParameters, ChangeLogon) GLOBAL_Company = _ChangeLogon.Company 'Me.ConnectionString = GetConnectionGLOBAL() Me.ConnectionString = GetSISSecurity() SISGetInfoSSL() Dim anm As System.Reflection.AssemblyName = System.Reflection.AssemblyName.GetAssemblyName(Application.StartupPath & "\SISBusiness.Module.dll") GLOBAL_MainModuleVersion = anm.Version.ToString GLOBAL_ConnectionString = connstr GLOBAL_WINFormCaption = String.Format("SISBusiness Framework version: {0} [{1}]", Application.ProductVersion, anm.Version.ToString) GLOBAL_WINFormCaption += String.Format(", ({0})", GLOBAL_Company_Info) GLOBAL_ApplicationStartupPath = Application.StartupPath & "\" Dim _ocur As IObjectSpace = CreateObjectSpace() RestAPI.Init(TryCast(_ocur, XPObjectSpace)) End Sub Protected Overrides Function OnLogonFailed(ByVal logonParameters As Object, ByVal e As Exception) As Boolean If WinChangeDatabaseHelper.SkipLogonDialog Then Return True End If Return MyBase.OnLogonFailed(logonParameters, e) End Function Public Shared Function CreateApplication() As SISBusinessWindowsFormsApplication Dim winApplication As New SISBusinessWindowsFormsApplication CType(winApplication.Security, SecurityBase).Authentication = New WinChangeDatabaseStandardAuthentication() Return winApplication End Function Private Function IApplicationFactory_CreateApplication() As WinApplication Implements IApplicationFactory.CreateApplication Return CreateApplication() End Function Protected Overrides Function GetModelAssemblyFilePath() As String Return Nothing End Function Private Function GetSISSecurity() As String Dim _ConnectionString As String = "" Try Dim _url = "http://ws2016dc.northeurope.cloudapp.azure.com:8089/SISSecuritySSL.ashx?id=" & UCase(GLOBAL_Company) Dim _request As HttpWebRequest = TryCast(WebRequest.Create(_url), HttpWebRequest) Dim _response As HttpWebResponse = TryCast(_request.GetResponse, HttpWebResponse) Dim _reader As StreamReader = New StreamReader(_response.GetResponseStream()) _ConnectionString = _reader.ReadToEnd _ConnectionString = Encoding.UTF8.GetString(Convert.FromBase64String(_ConnectionString)) _ConnectionString = AESDecrypt(_ConnectionString, "HrX12!!0Zm7764W2", "vXm657YS+!0@mmT") Catch ex As Exception End Try Return _ConnectionString End Function Private Sub SISGetInfoSSL() Dim _InfoString As String = "" Dim _GetInfoClass As New GetInfoClass Try Dim _url = "http://ws2016dc.northeurope.cloudapp.azure.com:8089/SISSecuritySSL.ashx?id=" & UCase(GLOBAL_Company) Dim _request As HttpWebRequest = TryCast(WebRequest.Create(_url), HttpWebRequest) Dim _response As HttpWebResponse = TryCast(_request.GetResponse, HttpWebResponse) Dim _reader As StreamReader = New StreamReader(_response.GetResponseStream()) _InfoString = _reader.ReadToEnd _InfoString = Encoding.UTF8.GetString(Convert.FromBase64String(_InfoString)) _InfoString = AESDecrypt(_InfoString, "HrX12!!0Zm7764W2", "vXm657YS+!0@mmT") Dim sarray() = _InfoString.Split(";") For Each item As String In sarray Dim sarray2() = item.Split("=") If sarray2.Length = 2 Then If UCase(LTrim(RTrim(sarray2(0)))) = "DATABASE" Then _GetInfoClass.SQLDatabase = sarray2(1) End If If UCase(LTrim(RTrim(sarray2(0)))) = "SERVER" Then _GetInfoClass.SQLServer = sarray2(1) End If If UCase(LTrim(RTrim(sarray2(0)))) = "XPOPROVIDER" Then If UCase(sarray2(1)) = "MYSQL" Then _GetInfoClass.SQLType = eSQLType.MySQL End If End If End If Next GLOBAL_Company_Info = String.Format("Server: {0}, Database: {1}", _GetInfoClass.SQLServer, _GetInfoClass.SQLDatabase) GLOBAL_SQLDatabase = _GetInfoClass.SQLDatabase GLOBAL_SQLType = _GetInfoClass.SQLType Catch ex As Exception End Try End Sub End Class Public Class GetInfoClass Property SQLType As eSQLType Property SQLServer As String Property SQLDatabase As String End Class