Imports Microsoft.VisualBasic Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports DevExpress.ExpressApp.Win Imports Nuvolar.Module.Win Imports DevExpress.ExpressApp Imports DevExpress.Xpo Imports DevExpress.Data.Filtering Imports DevExpress.XtraBars.Alerter Imports DevExpress.ExpressApp.Utils Imports DevExpress.ExpressApp.Xpo Imports Nuvolar.Module.GeneralFunction Imports System.Data.SqlClient Imports System.IO Imports System.Net Imports Newtonsoft.Json Imports Nuvolar.Module Imports System.Text Partial Public Class NuvolarWindowsFormsApplication Inherits WinApplication Public Sub New() InitializeComponent() End Sub Private Sub NuvolarWindowsFormsApplication_DatabaseVersionMismatch(ByVal sender As Object, ByVal e As DevExpress.ExpressApp.DatabaseVersionMismatchEventArgs) Handles MyBase.DatabaseVersionMismatch #If EASYTEST Then e.Updater.Update() e.Handled = True #Else If System.Diagnostics.Debugger.IsAttached Then e.Updater.Update() e.Handled = True Else Throw New InvalidOperationException( _ "The application cannot connect to the specified database, because the latter doesn't exist or its version is older than that of the application." & vbCrLf & _ "This error occurred because the automatic database update was disabled when the application was started without debugging." & vbCrLf & _ "To avoid this error, you should either start the application under Visual Studio in debug mode, or modify the " & _ "source code of the 'DatabaseVersionMismatch' event handler to enable automatic database update, " & _ "or manually create a database using the 'DBUpdater' tool." & vbCrLf & _ "Anyway, refer to the 'Update Application and Database Versions' help topic at http://www.devexpress.com/Help/?document=ExpressApp/CustomDocument2795.htm " & _ "for more detailed information. If this doesn't help, please contact our Support Team at http://www.devexpress.com/Support/Center/") End If #End If End Sub Protected Overrides Function GetTraceLogDirectory() As String Return MyBase.GetTraceLogDirectory() End Function Protected Overrides Function CreateLogonWindowControllers() As System.Collections.Generic.List(Of DevExpress.ExpressApp.Controller) Dim _result As System.Collections.Generic.List(Of DevExpress.ExpressApp.Controller) Dim _CreateLogonWindowsControllerVC As New CreateLogonWindowsControllerVC _result = MyBase.CreateLogonWindowControllers() _result.Add(_CreateLogonWindowsControllerVC) Return _result End Function Protected Overrides Sub CreateDefaultObjectSpaceProvider(args As CreateCustomObjectSpaceProviderEventArgs) args.ObjectSpaceProvider = New XPObjectSpaceProvider(args.ConnectionString, args.Connection, True) End Sub Protected Overrides Sub OnLoggedOn(args As DevExpress.ExpressApp.LogonEventArgs) MyBase.OnLoggedOn(args) Dim _onew As Xpo.XPObjectSpace = Me.ObjectSpaceProvider.CreateObjectSpace() Dim _uow As New UnitOfWork(_onew.Session.DataLayer) Dim _User As DevExpress.Persistent.BaseImpl.User = _onew.FindObject(Of DevExpress.Persistent.BaseImpl.User)(CriteriaOperator.Parse("Oid=?", SecuritySystem.CurrentUserId)) Nuvolar.Module.LockingModule.ReleaseAllLocking(_uow, _User) '// Itt sikeres a belépés !!! SISPushInfoSSL() End Sub Protected Overrides Sub OnLoggingOff(args As DevExpress.ExpressApp.LoggingOffEventArgs) MyBase.OnLoggingOff(args) Dim _onew As Xpo.XPObjectSpace = Me.ObjectSpaceProvider.CreateObjectSpace() Dim _uow As New UnitOfWork(_onew.Session.DataLayer) Dim _User As DevExpress.Persistent.BaseImpl.User = _onew.FindObject(Of DevExpress.Persistent.BaseImpl.User)(CriteriaOperator.Parse("Oid=?", SecuritySystem.CurrentUserId)) Nuvolar.Module.LockingModule.ReleaseAllLocking(_uow, _User) End Sub Private Sub SISPushInfoSSL() Dim _PushInfoClass As New PushInfoClass Dim _InfoString As String = "" Try Dim _onew As Xpo.XPObjectSpace = Me.ObjectSpaceProvider.CreateObjectSpace() Dim _uow As New UnitOfWork(_onew.Session.DataLayer) Dim _User As DevExpress.Persistent.BaseImpl.User = _onew.FindObject(Of DevExpress.Persistent.BaseImpl.User)(CriteriaOperator.Parse("Oid=?", SecuritySystem.CurrentUserId)) _PushInfoClass.UserName = _User.UserName _PushInfoClass.FullName = _User.FullName _InfoString = JsonConvert.SerializeObject(_PushInfoClass) _InfoString = AESEncrypt(_InfoString, "HrX12!!0Zm7764W2", "vXm657YS+!0@mmT") _InfoString = Convert.ToBase64String(Encoding.UTF8.GetBytes(_InfoString)) Dim _url = "http://sis-r.hu/SISChat/SISPushInfoSSL.ashx?id=" & _InfoString 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 GLOBAL_ActivityID = _InfoString Catch ex As Exception End Try End Sub End Class Public Class PushInfoClass Property Company As String Property ComputerName As String Property ComputerIPAddress As String Property ComputerUserName As String Property ComputerUserDomainName As String Property UserName As String Property FullName As String Sub New() Company = GLOBAL_Company ComputerName = Environment.MachineName ComputerIPAddress = GetIPv4Address() ComputerUserName = Environment.UserName ComputerUserDomainName = Environment.UserDomainName End Sub Private Function GetIPv4Address() As String Dim _GetIPv4Address As String = "" GetIPv4Address = String.Empty Dim strHostName As String = System.Net.Dns.GetHostName() Dim iphe As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(strHostName) For Each ipheal As System.Net.IPAddress In iphe.AddressList If ipheal.AddressFamily = System.Net.Sockets.AddressFamily.InterNetwork Then If _GetIPv4Address = "" Then _GetIPv4Address = ipheal.ToString() Else _GetIPv4Address += ";" + ipheal.ToString() End If End If Next Return _GetIPv4Address End Function End Class