Imports tsWPFCore Imports bdGrupoSanchoToro Imports bdGrupoSanchoToro.db Public Class FuncionesDinamicas Public Shared Function AbrirAplicacion(Tipo As String, Parametros As String, OtrosParametros As String) As Object Dim t As Type = tsUtilidades.Utilidades.FindType(Tipo) Dim uc As tsUserControl = t.GetConstructor(New System.Type() {}).Invoke(New Object() {}) uc.AbreAplicacionEnPestaña(Comun.dg,, AddressOf Diseño, AddressOf ErrorNoControladoAp, OtrosParametros) Return uc End Function Private Shared Sub DelegadoEliminarPlantilla(idDiseño As Integer) Dim bd = tscGrupoSanchoToro.NuevoContexto bd.Remove(bd.ficherosconfiguracion.First(Function(x) x.idFicheroConfiguracion = idDiseño)) bd.GuardarCambios() End Sub Friend Shared Sub ErrorNoControladoAp(Aplicacion As tsUserControl, ex As Exception) Comun.GeneraRegistroCorreoExcepcion(Nothing, ex, Aplicacion.GetType.ToString) End Sub Friend Shared Sub ErrorNoControladoAp(Aplicacion As String, ex As Exception) Comun.GeneraRegistroCorreoExcepcion(Nothing, ex, Aplicacion) End Sub Friend Shared Sub AbrirAP(uc As tsUserControl, OtrosParametros As String) uc.AbreAplicacionEnPestaña(Comun.dg,, AddressOf Diseño, AddressOf ErrorNoControladoAp, OtrosParametros) End Sub Private Shared Function Diseño(bd As Object, Operacion As OperacionDiseñoEnum, CodigoAplicacion As String, ByRef DescripcionDiseño As String, ByRef TodosUsuarios As Boolean, DiseñoActual() As Byte) As Byte() Try Dim tu = TodosUsuarios ' Dim CodigoAplicacion As String = apl.uc.GetType.ToString Select Case Operacion Case tsWPFCore.OperacionDiseñoEnum.ABRIR Dim bdp = DirectCast(bd, tscGrupoSanchoToro) If bdp.ficherosconfiguracion.Any(Function(x) x.Codigo = CodigoAplicacion AndAlso x.idUsuario = bdGrupoSanchoToro.db.Utilidades.idUsuario AndAlso (x.Descripcion Is Nothing OrElse x.Descripcion = "")) Then Dim f = bdp.ficherosconfiguracion.Where(Function(x) x.Codigo = CodigoAplicacion AndAlso x.idUsuario = bdGrupoSanchoToro.db.Utilidades.idUsuario).First Return f.Configuracion Else Return Nothing End If Case tsWPFCore.OperacionDiseñoEnum.ABRIR_DISEÑO_GUARDADO Dim bdp = DirectCast(bd, tscGrupoSanchoToro) Dim ld As List(Of tsWPFCore.DiseñoGuardado) = (From fc In bdp.ficherosconfiguracion Select fc.idFicheroConfiguracion, fc.idUsuario, fc.Descripcion, fc.Codigo Where Codigo = CodigoAplicacion AndAlso ((idUsuario.HasValue AndAlso idUsuario = bdGrupoSanchoToro.db.Utilidades.idUsuario) OrElse idUsuario.HasValue = False) Select New DiseñoGuardado With {.Descripcion = Descripcion, .TodosLosUsuarios = (idUsuario.HasValue = False), .idDiseño = idFicheroConfiguracion}).ToList Dim dxwd As New dxwDiseñoColumnas(CodigoAplicacion, DescripcionDiseño, TodosUsuarios, True, ld, AddressOf DelegadoEliminarPlantilla) If dxwd.ShowDialog Then Dim f = bdp.ficherosconfiguracion.First(Function(x) x.idFicheroConfiguracion = dxwd._IdDiseño) TodosUsuarios = dxwd._TodosLosUsuarios DescripcionDiseño = dxwd._Descripcion Return f.Configuracion Else Return Nothing End If Case tsWPFCore.OperacionDiseñoEnum.GUARDAR Dim bdp = tscGrupoSanchoToro.NuevoContexto Dim fichero As ficherosconfiguracion If bdp.ficherosconfiguracion.Any(Function(x) x.Codigo = CodigoAplicacion AndAlso x.idUsuario = bdGrupoSanchoToro.db.Utilidades.idUsuario AndAlso (x.Descripcion Is Nothing OrElse x.Descripcion = "")) Then fichero = bdp.ficherosconfiguracion.Where(Function(x) x.Codigo = CodigoAplicacion AndAlso x.idUsuario = bdGrupoSanchoToro.db.Utilidades.idUsuario AndAlso (x.Descripcion Is Nothing OrElse x.Descripcion = "")).First Else fichero = New ficherosconfiguracion fichero.Codigo = CodigoAplicacion fichero.idUsuario = bdGrupoSanchoToro.db.Utilidades.idUsuario fichero.Descripcion = Nothing bdp.ficherosconfiguracion.Add(fichero) End If fichero.Configuracion = DiseñoActual bdp.GuardarCambios() Diseño = Nothing Case tsWPFCore.OperacionDiseñoEnum.GUARDAR_COMO Dim bdp = DirectCast(bd, tscGrupoSanchoToro) Dim ld As List(Of tsWPFCore.DiseñoGuardado) = (From fc In bdp.ficherosconfiguracion Select fc.idFicheroConfiguracion, fc.idUsuario, fc.Descripcion, fc.Codigo Where Codigo = CodigoAplicacion AndAlso ((idUsuario.HasValue AndAlso idUsuario = bdGrupoSanchoToro.db.Utilidades.idUsuario) OrElse idUsuario.HasValue = False) Select New DiseñoGuardado With {.Descripcion = Descripcion, .TodosLosUsuarios = (idUsuario.HasValue = False), .idDiseño = idFicheroConfiguracion}).ToList Dim dxwd As New dxwDiseñoColumnas(CodigoAplicacion, DescripcionDiseño, TodosUsuarios, False, ld, AddressOf DelegadoEliminarPlantilla) If dxwd.ShowDialog Then Dim f As ficherosconfiguracion TodosUsuarios = dxwd._TodosLosUsuarios DescripcionDiseño = dxwd._Descripcion If dxwd._IdDiseño.HasValue Then f = bdp.ficherosconfiguracion.First(Function(x) x.idFicheroConfiguracion = dxwd._IdDiseño) Else f = New ficherosconfiguracion bdp.ficherosconfiguracion.Add(f) f.Codigo = CodigoAplicacion f.Descripcion = dxwd._Descripcion End If f.idUsuario = Nothing If dxwd._TodosLosUsuarios = False Then f.idUsuario = bdGrupoSanchoToro.db.Utilidades.idUsuario f.Configuracion = DiseñoActual bdp.GuardarCambios() End If Return Nothing Case Else ' tsWPFCore.OperacionDiseñoEnum.RESTAURAR Dim bdp = tscGrupoSanchoToro.NuevoContexto If bdp.ficherosconfiguracion.Any(Function(x) x.Codigo = CodigoAplicacion AndAlso x.idUsuario = bdGrupoSanchoToro.db.Utilidades.idUsuario) Then bdp.Remove(bdp.ficherosconfiguracion.Where(Function(x) x.Codigo = CodigoAplicacion AndAlso x.idUsuario = bdGrupoSanchoToro.db.Utilidades.idUsuario).First) bdp.GuardarCambios() End If Return Nothing End Select Catch EX As Exception Throw End Try End Function End Class