Primera versión estable compatible con linux de WSAsegasa
This commit is contained in:
59
bdAsegasa/dbcontext/conexion.cs
Normal file
59
bdAsegasa/dbcontext/conexion.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||
using tsUtilidades.Enumeraciones;
|
||||
using System.Drawing.Imaging;
|
||||
|
||||
namespace bdtsFactu.dbcontext
|
||||
{
|
||||
public class Conexion
|
||||
{
|
||||
public string Nombre { get; set; }
|
||||
public string Servidor { get; set; }
|
||||
public int Puerto { get; set; }
|
||||
|
||||
public string Database { get; set; }
|
||||
public string Usuario { get; set; }
|
||||
public string Contraseña { get; set; }
|
||||
|
||||
|
||||
public static List<Conexion> ListaConexiones()
|
||||
{
|
||||
List<Conexion> lc = new List<Conexion>();
|
||||
lc.Add(new Conexion() { Nombre = "Producción", Servidor = "192.168.61.201", Puerto = 30002, Usuario = "asegasa", Contraseña = "tk-8Vb/#%+2ÄM", Database = "gestionasegasa" });
|
||||
lc.Add(new Conexion() { Nombre = "Producción Remoto", Servidor = "sevilla.asegasa.com", Puerto = 30002, Usuario = "asegasa", Contraseña = "tk-8Vb/#%+2ÄM", Database = "gestionasegasa" });
|
||||
return lc;
|
||||
}
|
||||
|
||||
internal static string ObtieneConexionDefecto(string NombreConexion="Producción")
|
||||
{
|
||||
try
|
||||
{
|
||||
// optionsBuilder.UseMySql("server=tsFactu;database=tsFactu;port=13306;uid=m3soft;pwd=Romian2023--;persistsecurityinfo=True;TreatTinyAsBoolean=True;allowuservariables=True", Microsoft.EntityFrameworkCore.ServerVersion.Parse("8.2.0-mysql"));
|
||||
string cs = "";
|
||||
var lc = ListaConexiones();
|
||||
|
||||
var cn = lc.First(x => x.Nombre == NombreConexion);
|
||||
|
||||
string servidor = "";
|
||||
if (Environment.MachineName.ToUpper() == "VISDIG1")
|
||||
servidor = "localhost";
|
||||
else
|
||||
{
|
||||
servidor = cn.Servidor;
|
||||
}
|
||||
cs = "server=" + servidor + ";pwd=" + tsUtilidades.crypt.FEncS(cn.Contraseña, @"[JO1]", @"[JD1]", -875421649) + ";port=" + cn.Puerto.ToString() + ";uid=" + cn.Usuario + ";database=" + cn.Database + cs;
|
||||
return cs;
|
||||
}
|
||||
// End If
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exception(ex.Message, ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
6610
bdAsegasa/dbcontext/gestionasegasaContext.cs
Normal file
6610
bdAsegasa/dbcontext/gestionasegasaContext.cs
Normal file
File diff suppressed because it is too large
Load Diff
172
bdAsegasa/dbcontext/tscgestionasegasa.cs
Normal file
172
bdAsegasa/dbcontext/tscgestionasegasa.cs
Normal file
@@ -0,0 +1,172 @@
|
||||
//using bdAsegasa.CompiledModels;
|
||||
using bdtsFactu.dbcontext;
|
||||
using Microsoft.AspNetCore.Mvc.Formatters;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using System.Reflection.Emit;
|
||||
using System.Runtime.CompilerServices;
|
||||
using tsEFCore8.Extensiones;
|
||||
using tsUtilidades;
|
||||
using tsUtilidades.Enumeraciones;
|
||||
using tsUtilidades.Extensiones;
|
||||
using static System.Net.Mime.MediaTypeNames;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using bdAsegasa.db;
|
||||
using bdAsegasa.dbcontext;
|
||||
|
||||
namespace bdAsegasa
|
||||
{
|
||||
public class tscgestionasegasa : bdAsegasa.dbcontext.gestionasegasaContext, tsUtilidades.ItsContexto
|
||||
|
||||
{
|
||||
|
||||
public static bool Cargado = false;
|
||||
private static String? _Ip = null;
|
||||
public string? ip
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Ip;
|
||||
}
|
||||
set
|
||||
{
|
||||
_Ip = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string Aplicaciones { get; private set; }
|
||||
|
||||
//protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
//{
|
||||
// if (!optionsBuilder.IsConfigured)
|
||||
// {
|
||||
// // optionsBuilder.UseModel(tscFactuModel.Instance);
|
||||
// if (CargaDiferida) optionsBuilder.UseLazyLoadingProxies();
|
||||
// if (NoTracking) optionsBuilder.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);
|
||||
// // optionsBuilder.UseLoggerFactory(_myLoggerFactory);
|
||||
// optionsBuilder.UseMySql("server=tsFactu;database=tsFactu;port=13306;uid=m3soft;pwd=Romian2023--;persistsecurityinfo=True;TreatTinyAsBoolean=True;allowuservariables=True", Microsoft.EntityFrameworkCore.ServerVersion.Parse("8.2.0-mysql"));
|
||||
// }
|
||||
//}
|
||||
|
||||
public static readonly Microsoft.Extensions.Logging.LoggerFactory _myLoggerFactory =
|
||||
new LoggerFactory(new[] {
|
||||
new Microsoft.Extensions.Logging.Debug.DebugLoggerProvider()
|
||||
});
|
||||
|
||||
private static string? ConexionPorDefecto=null;
|
||||
public static tscgestionasegasa NuevoContexto(string NombreConexion = "" ,bool Lazy = true, bool SoloLectura = false, bool ConEventoSavingChanges = false, string aplicaciones = "")
|
||||
{
|
||||
string? cnx = null;
|
||||
if (NombreConexion=="")
|
||||
{
|
||||
if (ConexionPorDefecto == null) ConexionPorDefecto = Conexion.ObtieneConexionDefecto();
|
||||
cnx = ConexionPorDefecto;
|
||||
}
|
||||
else
|
||||
{
|
||||
cnx = Conexion.ObtieneConexionDefecto(NombreConexion);
|
||||
}
|
||||
|
||||
var ob = new DbContextOptionsBuilder<gestionasegasaContext>();
|
||||
// ob.UseLoggerFactory(_myLoggerFactory);
|
||||
// ob.UseInternalServiceProvider(<EnumeracionesService>)
|
||||
ob.UseMySql(cnx, Microsoft.EntityFrameworkCore.ServerVersion.Parse("5.7.0-mysql"));
|
||||
if (Lazy) ob.UseLazyLoadingProxies();
|
||||
if (SoloLectura) ob.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);
|
||||
var Opciones = ob.Options;
|
||||
tscgestionasegasa bd = new tscgestionasegasa(Opciones);
|
||||
bd.Aplicaciones = aplicaciones;
|
||||
if (ConEventoSavingChanges) bd.SavingChanges += GuardandoCambios;
|
||||
return bd;
|
||||
|
||||
}
|
||||
|
||||
//public static Datos.BBDD ObtieneBBDD(string NombreConexion)
|
||||
|
||||
private static void GuardandoCambios(object? sender, SavingChangesEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
tscgestionasegasa bd = (tscgestionasegasa)sender;
|
||||
var lap = bd.Aplicaciones.Split("|");
|
||||
//foreach (string ap in lap)
|
||||
//{
|
||||
// switch (ap.ToLower())
|
||||
// {
|
||||
// case "facturas":
|
||||
// {
|
||||
// bdAsegasa.db.facturas.GuardandoCambios(bd, ap);
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public tscgestionasegasa(DbContextOptions<gestionasegasaContext> Opciones) : base(Opciones)
|
||||
{
|
||||
if (_Ip == null) { ip = tsEFCore8.bbdd.ObtieneIPMysql(this); }
|
||||
else { ip = _Ip; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void AñadeObjeto(object Registro)
|
||||
{
|
||||
this.Add(Registro);
|
||||
}
|
||||
|
||||
public bool CompruebaUnico(EstadosAplicacion estado, string NombreCampo, object Valor, string NombreTablaBase, object DataContext)
|
||||
{
|
||||
return this.CompruebaRegistroUnico(estado == EstadosAplicacion.ModificandoRegistro, "bdAsegasa.db", NombreTablaBase, NombreCampo, Valor, DataContext);
|
||||
}
|
||||
public void EliminaObjeto(object Registro)
|
||||
{
|
||||
if (this.Entry(Registro).State == Microsoft.EntityFrameworkCore.EntityState.Detached)
|
||||
{
|
||||
this.Entry(Registro).State = Microsoft.EntityFrameworkCore.EntityState.Unchanged;
|
||||
}
|
||||
else if (this.Entry(Registro).State == Microsoft.EntityFrameworkCore.EntityState.Added)
|
||||
{
|
||||
this.Remove(Registro);
|
||||
this.Entry(Registro).State = Microsoft.EntityFrameworkCore.EntityState.Unchanged;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Remove(Registro);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int GuardarCambios()
|
||||
{
|
||||
return this.SaveChanges();
|
||||
}
|
||||
|
||||
public bool HayModificaciones()
|
||||
{
|
||||
return this.ChangeTracker.HasChanges();
|
||||
//IEnumerable<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry> res = from e in this.ChangeTracker.Entries()
|
||||
// where e.State.HasFlag(Microsoft.EntityFrameworkCore.EntityState.Added) ||
|
||||
// e.State.HasFlag(Microsoft.EntityFrameworkCore.EntityState.Modified) ||
|
||||
// e.State.HasFlag(Microsoft.EntityFrameworkCore.EntityState.Deleted)
|
||||
// select e;
|
||||
|
||||
//if (res.Any())
|
||||
// return true;
|
||||
//return false;
|
||||
}
|
||||
public int ObtieneLongitudCampo(string NombreTablaBase, string NombreCampo)
|
||||
{
|
||||
return this.ObtieneMaximaLongitudCampo("bdAsegasa.db", NombreTablaBase, NombreCampo);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user