Files
tsWPF/InicioServicioYClientes/Rutinas.vb
2026-05-14 08:45:02 +02:00

444 lines
30 KiB
VB.net

Imports System.Runtime.Remoting
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
Imports System.Windows.Forms
Imports System.Drawing
Imports tsl5.Enumeraciones
Imports tsl5
Imports System.Data
Imports DevExpress.Xpf.Core
Public Class Rutinas
Shared Sub IniciaServicioNR(Puerto As Integer, Nombre As String, tipo As Type)
Dim ht As New Hashtable
ht("port") = Puerto
ht("name") = Nombre
Dim serverProvTcp As New System.Runtime.Remoting.Channels.BinaryServerFormatterSinkProvider
serverProvTcp.TypeFilterLevel = Runtime.Serialization.Formatters.TypeFilterLevel.Full
Dim clientProvTcp As New System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider
Dim tc As System.Runtime.Remoting.Channels.Tcp.TcpChannel = New System.Runtime.Remoting.Channels.Tcp.TcpChannel(ht, clientProvTcp, serverProvTcp)
System.Runtime.Remoting.RemotingConfiguration.RegisterWellKnownServiceType(tipo, Nombre & ".soap", WellKnownObjectMode.Singleton)
End Sub
Shared Function ObtieneObjetoServicioNR(Servidor As String, Puerto As Integer, Nombre As String) As tsl5.Interfaces.IServicioNR
Dim sr As tsl5.Interfaces.IServicioNR
Dim sPuertoNR As String = Puerto
sr = System.Activator.GetObject(GetType(tsl5.Interfaces.IServicioNR), "tcp://" & Servidor & ":" & sPuertoNR & "/" & Nombre & ".soap")
Return sr
End Function
'Shared Function ObtieneActualizaciones(VersionServidor As Datos.Actualizacion, ByRef VersionAComparar As Datos.Actualizacion) As Enumeraciones.tipoActualizacionEnum
' Dim TipoActualizacion As Enumeraciones.tipoActualizacionEnum = Enumeraciones.tipoActualizacionEnum.No_Actualizar
' Dim NuevosElementos As New List(Of Datos.ElementoActualizable)
' For Each fichero In VersionServidor.Elementos 'VersionAComparar.Elementos
' Dim sNombreFichero As String = fichero.NombreFichero
' Dim sRutaFichero As String = fichero.RutaFichero
' Dim TipoFichero As TipoFicheroActualizableEnum = fichero.tipoFichero
' Dim fs = From f In VersionAComparar.Elementos Where f.NombreFichero = sNombreFichero And f.tipoFichero = TipoFichero And f.RutaFichero = sRutaFichero Select f
' If fs.Count = 0 Then
' Dim NuevoFich As New Datos.ElementoActualizable
' NuevoFich = fichero
' NuevoFich.Comparacion = Enumeraciones.ComparacionEnum.Nuevo
' NuevosElementos.Add(NuevoFich)
' If NuevoFich.tipoFichero = Enumeraciones.tipoFicheroActualizableEnum.Datos Then
' If TipoActualizacion = Enumeraciones.tipoActualizacionEnum.No_Actualizar Then
' TipoActualizacion = Enumeraciones.tipoActualizacionEnum.Actualizacion_Sin_Reinicio
' ElseIf TipoActualizacion = TipoActualizacionEnum.Actualizacion_Con_Reinicio Then
' TipoActualizacion = Enumeraciones.tipoActualizacionEnum.Actualizacion_Mixta
' End If
' Else
' If TipoActualizacion = Enumeraciones.tipoActualizacionEnum.No_Actualizar Then
' TipoActualizacion = Enumeraciones.tipoActualizacionEnum.Actualizacion_Con_Reinicio
' Else
' If TipoActualizacion = TipoActualizacionEnum.Actualizacion_Sin_Reinicio Then TipoActualizacion = Enumeraciones.tipoActualizacionEnum.Actualizacion_Mixta
' End If
' End If
' Else
' If fs(0).FechaModificacion <> fichero.FechaModificacion Then
' If fichero.tipoFichero = Enumeraciones.tipoFicheroActualizableEnum.Datos Then
' If TipoActualizacion = Enumeraciones.tipoActualizacionEnum.No_Actualizar Then
' TipoActualizacion = Enumeraciones.tipoActualizacionEnum.Actualizacion_Sin_Reinicio
' ElseIf TipoActualizacion = TipoActualizacionEnum.Actualizacion_Con_Reinicio Then
' TipoActualizacion = Enumeraciones.tipoActualizacionEnum.Actualizacion_Mixta
' End If
' Else
' If TipoActualizacion = Enumeraciones.tipoActualizacionEnum.No_Actualizar Then
' TipoActualizacion = Enumeraciones.tipoActualizacionEnum.Actualizacion_Con_Reinicio
' Else
' If TipoActualizacion = TipoActualizacionEnum.Actualizacion_Sin_Reinicio Then TipoActualizacion = Enumeraciones.tipoActualizacionEnum.Actualizacion_Mixta
' End If
' End If
' fs(0).Comparacion = Enumeraciones.ComparacionEnum.Diferente
' fs(0).FechaModificacion = fichero.FechaModificacion
' Else
' fs(0).Comparacion = Enumeraciones.ComparacionEnum.Sin_Cambios
' End If
' End If
' Next
' For Each fichero In VersionAComparar.Elementos
' Dim sNombreFichero As String = fichero.NombreFichero
' Dim sRutaFichero As String = fichero.RutaFichero
' Dim TipoFichero As TipoFicheroActualizableEnum = fichero.tipoFichero
' Dim fs = From f In VersionServidor.Elementos Where f.NombreFichero = sNombreFichero And f.tipoFichero = TipoFichero And f.RutaFichero = sRutaFichero Select f
' 'Dim fs = From f In VersionServidor.Elementos Where f.NombreFichero = sNombreFichero Select f
' If fs.Count = 0 Then
' fichero.Comparacion = Enumeraciones.ComparacionEnum.Inexistente
' End If
' Next
' For Each fichero In NuevosElementos
' VersionAComparar.Elementos.Add(fichero)
' Next
' Return TipoActualizacion
'End Function
'Public Shared Function ObtieneVersionFicherosRecursivo(NombreActualizacion As String, RutaDatos As String) As Datos.Actualizacion
' Dim Actualizacion As New Datos.Actualizacion
' ObtieneVersion(Actualizacion, RutaDatos, RutaDatos, Enumeraciones.TipoFicheroActualizableEnum.Datos)
' Actualizacion.Nombre = NombreActualizacion
' Return Actualizacion
'End Function
'Public Shared Sub ObtieneVersion(ByRef Version As Datos.Actualizacion, Ruta As String, RutaInicial As String, TipoFichero As Enumeraciones.tipoFicheroActualizableEnum)
' Dim iBarra As Integer = 1
' If Ruta.EndsWith("\") Then iBarra = 0
' Dim sDirectorios() As String = IO.Directory.GetDirectories(Ruta)
' For Each sdirectorio In sDirectorios
' ObtieneVersion(Version, sdirectorio, RutaInicial, TipoFichero)
' Next
' Dim sFicheros() As String = IO.Directory.GetFiles(Ruta)
' Dim sfichero As String
' Dim ea As Datos.ElementoActualizable
' Dim fi As FileInfo
' For Each sfichero In sFicheros
' ea = New Datos.ElementoActualizable
' ea.NombreFichero = sfichero.Substring(Ruta.Length + iBarra)
' fi = New FileInfo(sfichero)
' ea.FechaModificacion = fi.LastWriteTimeUtc
' ea.tipoFichero = TipoFichero
' ea.RutaFichero = ""
' If Ruta <> RutaInicial Then ea.RutaFichero = Ruta.Substring(RutaInicial.Length).trimStart("\") & "\"
' Version.Elementos.Add(ea)
' Next
'End Sub
' Shared Function GeneraDatosActualizacion(NombreActualizacion As String, RutaDatos As String) As Datos.Actualizacion
' Dim act As New Datos.Actualizacion
' act = ObtieneVersionFicherosRecursivo(NombreActualizacion, RutaDatos)
' Return act
'End Function
'Shared Sub InicioServicios(ByRef Configuracion As Datos.DatosConfiguracionServicio, ByRef VersionesFicherosCliente() As Datos.Actualizacion, ServicioNetRemoting As Type)
' 'ReDim VersionesFicherosCliente(Configuracion.OtrosActualizadores.Count - 1)
' 'Dim da As New Datos.Actualizacion
' 'For i = 0 To Configuracion.OtrosActualizadores.Count - 1
' ' da = ObtieneVersionFicherosRecursivo(Configuracion.OtrosActualizadores(i).Nombre, Configuracion.OtrosActualizadores(i).RutaDatos)
' ' VersionesFicherosCliente(i) = da
' 'Next
' Call tsl5.Rutinas.IniciaServicioNR(Configuracion.PuertoNR, Configuracion.NombreServicio, ServicioNetRemoting)
'End Sub
Public Shared Function ObtieneDatConexClienteSinServicio(FicheroConf As String, Peticion As tsl5.Datos.DatosConfiguracionCliente, idGrupoBD As Integer) As tsl5.Datos.DatosConexionCliente
Try
Return tsWPF.Rutinas.ObtieneDatosConexionCliente(FicheroConf, Peticion.ConstantesCliente.NombreServicio, Peticion.ServidorActivo.Localizacion, idGrupoBD, "")
Catch exc As Exception
Throw New Exception(exc.Message, exc)
End Try
End Function
Shared Function ObtieneDatosConexionClienteSinServicio(FicheroConfiguracion As String, NombreServicio As String, Localizacion As Enumeraciones.LocalizacionesEnum, idGrupoBD As Integer, dllProcesos As String) As tsl5.Datos.DatosConexionCliente
Try
Dim configuracionservidor As New tsl5.Datos.DatosConfiguracionServicio
configuracionservidor = Datos.DatosConfiguracionServicio.CargaConfiguracion(FicheroConfiguracion, dllProcesos)
Dim bd As New MySql.Data.MySqlClient.MySqlConnection(bbdd.GeneraConnectionStringMySQL(configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Servidor, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).DataBase, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Usuario, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Password, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Puerto, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).SegundosTimeout, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Pooling, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).SSL, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).FicheroCertificado, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).PasswordCertificado))
'Dim bd As New MySql.Data.MySqlClient.MySqlConnection(bbdd.GeneraConnectionStringMySQL(configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Servidor, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).DataBase, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Usuario, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Password, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Puerto))
' ''Dim drUsuario As DataRow = bbdd.ObtienePrimeraFilaMysql(bd, "Select * From Usuarios where Usuario=? and SHA1passwd=?", {Peticion.Usuario, Peticion.Password})
' ''If drUsuario Is Nothing Then Throw New Exception("Usuario no válido")
Dim dtBBDD As DataTable = bbdd.ObtieneTablaMysql(bd, "SELECT * FROM conexionesbd inner join grupobd on grupobd.idgrupobd=conexionesbd.idgrupobd where grupobd.idgrupobd=?", {idGrupoBD})
Dim dcc As New tsl5.Datos.DatosConexionCliente
For Each dr In dtBBDD.Rows
Dim bbdd As New tsl5.Datos.BBDD
bbdd.Usuario = dr("Usuario")
bbdd.Password = dr("Password")
bbdd.DataBase = dr("Esquema")
If Localizacion = Enumeraciones.LocalizacionesEnum.Local Then
bbdd.Servidor = dr("ServidorLocal")
bbdd.Puerto = dr("PuertoLocal")
Else
bbdd.Servidor = dr("ServidorRemoto")
bbdd.Puerto = dr("PuertoRemoto")
End If
dcc.BasesDatos.Add(bbdd)
Next
dcc.NumeroBDConfiguracion = configuracionservidor.NumeroBDConfiguracion
'Dim act = From a In configuracionservidor.OtrosActualizadores Where a.Nombre = NombreServicio Select a
'If Localizacion = Enumeraciones.LocalizacionesEnum.Local Then
' dcc.ServidorActualizador = act(0).ServidorLocal
'Else
' dcc.ServidorActualizador = act(0).ServidorRemoto
'End If
Return dcc
Catch ex As Exception
Throw ex
End Try
End Function
Shared Function ObtieneDatosConexionCliente(FicheroConfiguracion As String, NombreServicio As String, Localizacion As Enumeraciones.LocalizacionesEnum, idGrupoBD As Integer, dllProcesos As String) As tsl5.Datos.DatosConexionCliente
Try
Dim configuracionservidor As New tsl5.Datos.DatosConfiguracionServicio
configuracionservidor = Datos.DatosConfiguracionServicio.CargaConfiguracion(FicheroConfiguracion, dllProcesos)
Dim bd As New MySql.Data.MySqlClient.MySqlConnection(bbdd.GeneraConnectionStringMySQL(configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Servidor, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).DataBase, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Usuario, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Password, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Puerto, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).SegundosTimeout, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Pooling, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).SSL, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).FicheroCertificado, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).PasswordCertificado))
' ''Dim drUsuario As DataRow = bbdd.ObtienePrimeraFilaMysql(bd, "Select * From Usuarios where Usuario=? and SHA1passwd=?", {Peticion.Usuario, Peticion.Password})
' ''If drUsuario Is Nothing Then Throw New Exception("Usuario no válido")
Dim dtBBDD As DataTable = bbdd.ObtieneTablaMysql(bd, "SELECT * FROM conexionesbd inner join grupobd on grupobd.idgrupobd=conexionesbd.idgrupobd where grupobd.idgrupobd=?", {idGrupoBD})
Dim dcc As New tsl5.Datos.DatosConexionCliente
For Each dr In dtBBDD.Rows
Dim bbdd As New tsl5.Datos.BBDD
bbdd.Usuario = dr("Usuario")
bbdd.Password = dr("Password")
bbdd.DataBase = dr("Esquema")
If Localizacion = Enumeraciones.LocalizacionesEnum.Local Then
bbdd.Servidor = dr("ServidorLocal")
bbdd.Puerto = dr("PuertoLocal")
Else
bbdd.Servidor = dr("ServidorRemoto")
bbdd.Puerto = dr("PuertoRemoto")
End If
dcc.BasesDatos.Add(bbdd)
Next
'Dim act = From a In configuracionservidor.OtrosActualizadores Where a.Nombre = NombreServicio Select a
'If Localizacion = Enumeraciones.LocalizacionesEnum.Local Then
' dcc.ServidorActualizador = act(0).ServidorLocal
'Else
' dcc.ServidorActualizador = act(0).ServidorRemoto
'End If
Return dcc
Catch ex As Exception
Throw ex
End Try
End Function
Shared Function IniciaSesion(sr As tsl5.Interfaces.IServicioNR, Usuario As String, Contraseña As String, idGrupoBD As Integer) As Datos.DatosSesionCliente
Dim e As Exception = Nothing
Dim dsc As Datos.DatosSesionCliente
dsc = sr.IniciaSesion(Usuario, Contraseña, idGrupoBD, e)
If Not e Is Nothing Then Throw e
Return dsc
End Function
'Public Shared Function IniciaSesionSinServicio(Usuario As String, Contraseña As String, ByRef idGrupoBD As Integer, Aplicacion As String, ByRef ex As System.Exception) As tsl5.Datos.DatosSesionCliente
' Try
' ex = Nothing
' Dim sSHA1passwd As String = crypt.SHA1("M3Soft." & Contraseña)
' Dim sFicheroConf As String = ObtieneFicheroConfiguracionGenerico(Aplicacion)
' Return IniciarSesion(sFicheroConf, Usuario, sSHA1passwd, idGrupoBD, "")
' Catch exc As Exception
' ex = exc
' Return Nothing
' End Try
'End Function
Shared Function ObtieneFicheroConfiguracionGenerico(Aplicacion) As String
Dim sRutaConfiguraciones As String
sRutaConfiguraciones = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) & "\Depuracion\" & Aplicacion & "\Servidor\ServidorConfig.xml"
If Not IO.File.Exists(sRutaConfiguraciones) Then
sRutaConfiguraciones = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) & "\" & Aplicacion & "\Servidor\ServidorConfig.xml"
End If
Return sRutaConfiguraciones
End Function
Shared Function ObtieneDatConexCliente(Dcc As Datos.DatosConfiguracionCliente, ByRef sr As tsl5.Interfaces.IServicioNR, idGrupoBD As Integer) As Datos.DatosConexionCliente
Dim e As Exception = Nothing
Dim dc As Datos.DatosConexionCliente
sr = tsWPF.Rutinas.ObtieneObjetoServicioNR(Dcc.ServidorActivo.Servidor, Dcc.ServidorActivo.Puerto, Dcc.ConstantesCliente.NombreServicio)
'dc = sr.IniciaSesion(Dcc, e)
dc = sr.ObtieneDatosConexionCliente(Dcc, idGrupoBD, e)
If Not e Is Nothing Then Throw e
Return dc
End Function
'Shared Sub ActualizaCliente(DatConfCli As Datos.DatosConfiguracionCliente, ByRef DatConexCli As Datos.DatosConexionCliente, sr As tsl5.Interfaces.IServicioNR)
' Try
' If Not Windows.Forms.Application.StartupPath.ToLower.StartsWith("c:\tecnosis.tfs\") Then
' Dim da As New Datos.Actualizacion
' Dim e As Exception = Nothing
' da = tsl5.Rutinas.GeneraDatosActualizacion(DatConfCli.ConstantesCliente.NombreServicio, DatConfCli.ConstantesCliente.RutaDatos)
' Dim ap As Enumeraciones.tipoActualizacionEnum = sr.CompruebaActualizacionesCliente(DatConfCli.ConstantesCliente.NombreServicio, da, e)
' If Not e Is Nothing Then Throw e
' Select Case ap
' Case Enumeraciones.tipoActualizacionEnum.Actualizacion_Mixta
' Actualiza(da, DatConfCli, DatConexCli, TipoFicheroActualizableEnum.Datos)
' LlamaActualizadorAuxiliar(da, DatConfCli, DatConexCli)
' Case Enumeraciones.tipoActualizacionEnum.Actualizacion_Sin_Reinicio
' Actualiza(da, DatConfCli, DatConexCli, TipoFicheroActualizableEnum.Datos)
' Case TipoActualizacionEnum.Actualizacion_Con_Reinicio
' LlamaActualizadorAuxiliar(da, DatConfCli, DatConexCli)
' End Select
' End If
' Catch ex As Exception
' Throw ex
' End Try
'End Sub
'Public Shared Sub Actualiza(DatosActualizacion As Datos.Actualizacion, DatConfCli As Datos.DatosConfiguracionCliente, DatConexCli As Datos.DatosConexionCliente, FicherosAActualizar As TipoFicheroActualizableEnum)
' Try
' If IO.Directory.Exists(DatConfCli.ConstantesCliente.RutaTmp) Then IO.Directory.Delete(DatConfCli.ConstantesCliente.RutaTmp, True)
' IO.Directory.CreateDirectory(DatConfCli.ConstantesCliente.RutaTmp)
' Dim fActualizador As New frmActualizador
' fActualizador.tipoActualizacion = FicherosAActualizar
' fActualizador.DatosActualizacion = DatosActualizacion
' fActualizador.DatConfCli = DatConfCli
' fActualizador.DatConexCli = DatConexCli
' fActualizador.ShowDialog()
' Catch ex As Exception
' Throw ex
' End Try
'End Sub
'Private Shared Sub DescargaElementoFTP(servidorActualizacion As Datos.ServidorActualizacion, NombreFichero As String, RutaDescarga As String)
' Dim ftp As New Dart.PowerTCP.SecureFtp.Ftp
' ftp.Server = servidorActualizacion.Servidor
' ftp.Username = servidorActualizacion.Usuario
' ftp.Password = servidorActualizacion.Contraseña
' ftp.Passive = servidorActualizacion.Pasivo
' ftp.ServerPort = servidorActualizacion.Puerto
' If servidorActualizacion.SSL Then
' ftp.Security = Dart.PowerTCP.SecureFtp.Security.Implicit
' Else
' ftp.Security = Dart.PowerTCP.SecureFtp.Security.None
' End If
' ftp.Get(servidorActualizacion.Directorio & NombreFichero, RutaDescarga & NombreFichero)
'End Sub
'Private Shared Sub DescargaElementoSamba(servidorActualizacion As Datos.ServidorActualizacion, NombreFichero As String, RutaDescarga As String)
' IO.File.Copy(servidorActualizacion.Directorio & "\" & NombreFichero, RutaDescarga & NombreFichero, True)
'End Sub
'Private Shared Sub LlamaActualizadorAuxiliar(da As Datos.Actualizacion, DatConfCli As Datos.DatosConfiguracionCliente, DatConexCli As Datos.DatosConexionCliente)
' Dim DatosActAux As New Datos.DatosActualizadorAuxiliar
' DatosActAux.Actualizacion = da
' DatosActAux.ConfiguracionCliente = DatConfCli
' DatosActAux.ConexionCliente = DatConexCli
' DatosActAux.RutaEjecutable = Windows.Forms.Application.StartupPath & "\" & Process.GetCurrentProcess.ProcessName & ".exe"
' Dim sFicDatosAct As String
' sFicDatosAct = DatConfCli.ConstantesCliente.RutaDatos & "\ActualizadorAuxiliar\DatosActAux.xml"
' Utilidades.serializar(DatosActAux, sFicDatosAct)
' If Not IO.File.Exists(DatConfCli.ConstantesCliente.RutaDatos & "\ActualizadorAuxiliar\ActualizadorAuxiliar.exe") Then
' MsgBox("No existe el programa actualizador", MsgBoxStyle.Critical, "Error")
' Else
' Process.Start(DatConfCli.ConstantesCliente.RutaDatos & "\ActualizadorAuxiliar\ActualizadorAuxiliar.exe", sFicDatosAct)
' 'MsgBox("El programa se tiene que actualizar.")
' 'Windows.Forms.Application.Exit()
' Environment.Exit(0)
' End If
'End Sub
<System.Diagnostics.DebuggerStepThrough()> Public Shared Function Ttagi(ByVal sValortag As String, ByVal sToken As String, Optional Separador As String = "|") As String
'Public Shared Function Ttagi(ByVal sValortag As String, ByVal sToken As String) As String
'Ttagi = ""
'Try
' sValortag = "|" & sValortag & "|"
' If InStr(1, "|" & sValortag & "|", "|" & sToken & "=", vbTextCompare) > 0 Then
' Ttagi = Mid(sValortag, (InStr(1, sValortag, "|" & sToken & "=") + Len(sToken) + 2), InStr(1, Mid(sValortag, InStr(1, sValortag, "|" & sToken & "=") + Len(sToken) + 2), "|") - 1)
' End If
'Catch ex As Exception
' Throw ex
'End Try
sValortag = Separador & sValortag & Separador
Dim atags = sValortag.Split(Separador)
If atags.Any(Function(x) x.StartsWith(sToken & "=")) Then
Ttagi = atags.First(Function(X) X.StartsWith(sToken & "=")).Split("=")(1)
Else
Ttagi = ""
End If
End Function
Public Shared Function FindType(ByVal name As String) As Type
Dim base As Type
base = Reflection.Assembly.GetEntryAssembly.GetType(name, False, True)
If base IsNot Nothing Then Return base
base = Reflection.Assembly.GetExecutingAssembly.GetType(name, False, True)
If base IsNot Nothing Then Return base
For Each assembly As Reflection.Assembly In _
AppDomain.CurrentDomain.GetAssemblies
base = assembly.GetType(name, False, True)
If base IsNot Nothing Then Return base
Next
Throw New Exception("Clase no encontrada")
End Function
'Shared Sub GeneraMenus(BarraMenu As DevExpress.Xpf.Bars.Bar, datconexcli As Datos.DatosConexionCliente, datsesioncli As Datos.DatosSesionCliente, Evento As DevExpress.Xpf.Bars.ItemClickEventHandler)
' 'Dim bd As tsl5.tsl5Model.Entities = bbdd.ConectarEntity(datconexcli.BasesDatos(Me.NumeroBD).Servidor, datconexcli.BasesDatos(Me.NumeroBD).DataBase, datconexcli.BasesDatos(Me.NumeroBD).Puerto, datconexcli.BasesDatos(Me.NumeroBD).Usuario, datconexcli.BasesDatos(Me.NumeroBD).Password, "tsl5Model")
' Dim bd As tsl5.tsl5Model.tsl5Entities = Nothing
' Select Case datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).Tipo
' Case TipoBD.LOCALDB
' bd = bbdd.ConectarTsl5EntityLocalDB(datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).Servidor, datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).Fichero, datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).DataBase, "tsl5Model")
' Case TipoBD.MYSQL
' bd = bbdd.ConectarTsl5EntityMySQL(datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).Servidor, datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).DataBase, datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).Puerto, datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).Usuario, datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).Password, "tsl5Model", datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).Pooling, datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).SSL, datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).FicheroCertificado, datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).PasswordCertificado)
' Case TipoBD.SQLSERVER
' bd = bbdd.ConectarTsl5EntitySQLServer(datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).Servidor, datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).DataBase, datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).Usuario, datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).Password, "tsl5Model")
' Case Else
' Throw New Exception("Tipo de base de datos no soportado. " & datconexcli.BasesDatos(datconexcli.NumeroBDConfiguracion).Tipo.ToString)
' End Select
' Dim menuiniciales = (From m In bd.menus Where m.idGrupoMenu = datsesioncli.idGrupoMenu Order By m.Orden Select m).ToList
' Dim bsi As DevExpress.Xpf.Bars.BarSubItem
' For Each mi In menuiniciales
' bsi = New DevExpress.Xpf.Bars.BarSubItem
' bsi.Content = mi.Texto.Replace("&", "_")
' Call generamenurecursivo(bd, bsi, mi, Evento)
' BarraMenu.ItemLinks.Add(bsi)
' Next
'End Sub
'Private Shared Sub generamenurecursivo(bd As tsl5.tsl5Model.tsl5Entities, ByRef bsi As DevExpress.Xpf.Bars.BarSubItem, mi As tsl5.tsl5Model.menus, Evento As DevExpress.Xpf.Bars.ItemClickEventHandler)
' Dim bsih As DevExpress.Xpf.Bars.BarSubItem
' Dim bbi As DevExpress.Xpf.Bars.BarButtonItem
' Dim submenus = (From m In bd.menus Where m.idMenuPadre = mi.idMenus Order By m.Orden Select m).ToList
' For Each sm In submenus
' If sm.Accion.Trim <> "" Then
' bbi = New DevExpress.Xpf.Bars.BarButtonItem
' bbi.Content = sm.Texto.Replace("&", "_")
' bbi.Tag = sm.Accion
' ' If sm.Accion.ToLower.Contains("enti") Then bbi.KeyGesture = New KeyGesture(Key.LeftAlt + Key.E)
' AddHandler bbi.ItemClick, Evento
' bsi.ItemLinks.Add(bbi)
' Else
' bsih = New DevExpress.Xpf.Bars.BarSubItem
' bsih.Content = sm.Texto.Replace("&", "_")
' Call generamenurecursivo(bd, bsih, sm, Evento)
' bsi.ItemLinks.Add(bsih)
' End If
' Next
'End Sub
'Shared Function IniciarSesion(FicheroConfiguracion As String, Usuario As String, SHA1passwd As String, ByRef idGrupoBD As Integer, dllProcesos As String) As tsl5.Datos.DatosSesionCliente
' Try
' Dim configuracionservidor As New tsl5.Datos.DatosConfiguracionServicio
' configuracionservidor = Datos.DatosConfiguracionServicio.CargaConfiguracion(FicheroConfiguracion, dllProcesos)
' Dim bd As New MySql.Data.MySqlClient.MySqlConnection(bbdd.GeneraConnectionStringMySQL(configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Servidor, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).DataBase, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Usuario, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Password, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Puerto, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).SegundosTimeout, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).Pooling, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).SSL, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).FicheroCertificado, configuracionservidor.BasesDatos(configuracionservidor.NumeroBDConfiguracion).PasswordCertificado))
' Dim drUsuario As DataRow = bbdd.ObtienePrimeraFilaMysql(bd, "Select * From Usuarios where Usuario=? and SHA1passwd=?", {Usuario, SHA1passwd})
' If drUsuario Is Nothing Then Throw New Exception("Usuario no válido")
' Dim drGrupo As DataRow = bbdd.ObtienePrimeraFilaMysql(bd, "Select * From GruposUsuarios where idGrupo=?", {drUsuario("idGrupo")})
' Dim ds As New tsl5.Datos.DatosSesionCliente
' ds.IdSesion = 1 'TODO: leer de constante
' ds.idUsuario = drUsuario("idUsuario")
' ds.idGrupoMenu = drGrupo("idGrupoMenu")
' idGrupoBD = drUsuario("idGrupobd")
' Return ds
' Catch ex As Exception
' Throw ex
' End Try
'End Function
End Class