196 lines
8.0 KiB
C#
196 lines
8.0 KiB
C#
using Exferia_Aplicacion.General;
|
|
using Exferia_EntityFramework;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Text.RegularExpressions;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Exferia_Actualizacion_BD._1_Datos
|
|
{
|
|
public class PRV_Actualizaciones_Datos
|
|
{
|
|
|
|
public PRV_Actualizaciones Obtener_UltimaActualizacion()
|
|
{
|
|
Exferia_Entities obj_Exferia_Entities = null;
|
|
PRV_Actualizaciones mdl_PRV_Actualizaciones = null;
|
|
|
|
try
|
|
{
|
|
|
|
//Conexion
|
|
obj_Exferia_Entities = new Exferia_Entities();
|
|
obj_Exferia_Entities.Configuration.LazyLoadingEnabled = false;
|
|
|
|
string str_SQL = " SELECT top 1 " +
|
|
nameof(PRV_Actualizaciones.id) + " , " +
|
|
nameof(PRV_Actualizaciones.versionETF_Numero_Texto) + " , " +
|
|
nameof(PRV_Actualizaciones.versionEFT_Numero_Numerica) + " , " +
|
|
nameof(PRV_Actualizaciones.fechaEjecucion) +
|
|
" FROM " + nameof(PRV_Actualizaciones) +
|
|
" ORDER BY " + nameof(PRV_Actualizaciones.versionEFT_Numero_Numerica) + " DESC ";
|
|
|
|
|
|
//Rellenar el Modelo
|
|
mdl_PRV_Actualizaciones = obj_Exferia_Entities.Database.SqlQuery<PRV_Actualizaciones>(str_SQL, new object[]{ }).FirstOrDefault();
|
|
}
|
|
catch (Control_Errores)
|
|
{
|
|
throw;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Control_Errores("", ex, nameof(PRV_Actualizaciones_Datos) + "/" + nameof(Obtener_UltimaActualizacion), true);
|
|
}
|
|
finally
|
|
{
|
|
obj_Exferia_Entities.Database.Connection.Close();
|
|
obj_Exferia_Entities.Dispose();
|
|
}
|
|
|
|
return mdl_PRV_Actualizaciones;
|
|
}
|
|
|
|
public void Ejecutar_Script(string _str_Script)
|
|
{
|
|
Exferia_Entities dbcontext = null;
|
|
|
|
try
|
|
{
|
|
dbcontext = new Exferia_Entities();
|
|
|
|
dbcontext.Database.ExecuteSqlCommand(_str_Script);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Control_Errores(_str_Script, ex, nameof(PRV_Actualizaciones_Datos) + "/" + nameof(Ejecutar_Script), true);
|
|
}
|
|
finally
|
|
{
|
|
dbcontext.Database.Connection.Close();
|
|
dbcontext.Dispose();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public void Ejecutar_Script_Procedimientos(string _str_Script)
|
|
{
|
|
SqlCommand obj_SqlCommand;
|
|
SqlConnectionStringBuilder obj_SqlConnectionStringBuilder = new SqlConnectionStringBuilder();
|
|
obj_SqlConnectionStringBuilder.DataSource = Variables.G_STR_CONEXION_SERVIDOR;
|
|
obj_SqlConnectionStringBuilder.InitialCatalog = Variables.G_STR_CONEXION_BASEDATOS;
|
|
|
|
if (Variables.G_STR_CONEXION_USUARIO.Trim().Equals("") || Variables.G_STR_CONEXION_CLAVE.Trim().Equals(""))
|
|
{ obj_SqlConnectionStringBuilder.IntegratedSecurity = true; }
|
|
else
|
|
{
|
|
obj_SqlConnectionStringBuilder.Password = Variables.G_STR_CONEXION_CLAVE;
|
|
obj_SqlConnectionStringBuilder.UserID = Variables.G_STR_CONEXION_USUARIO;
|
|
}
|
|
|
|
SqlConnection obj_SqlConnection = null;
|
|
|
|
try
|
|
{
|
|
obj_SqlConnection = new SqlConnection(obj_SqlConnectionStringBuilder.ConnectionString);
|
|
obj_SqlConnection.Open();
|
|
|
|
string[] arr_Scripts = _str_Script.Split(new string[] { "SIGUIENTELINEAPARAEJECUCION" }, StringSplitOptions.None);
|
|
foreach (string str_Script_Final in arr_Scripts)
|
|
{
|
|
|
|
obj_SqlCommand = new SqlCommand(str_Script_Final, obj_SqlConnection);
|
|
obj_SqlCommand.ExecuteNonQuery();
|
|
}
|
|
|
|
obj_SqlConnection.Close();
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Control_Errores(_str_Script, ex, nameof(PRV_Actualizaciones_Datos) + "/" + nameof(Ejecutar_Script_Procedimientos), true);
|
|
}
|
|
finally
|
|
{
|
|
if (obj_SqlConnection != null)
|
|
{
|
|
if (obj_SqlConnection.State == ConnectionState.Open)
|
|
{
|
|
obj_SqlConnection.Close();
|
|
}
|
|
obj_SqlConnection.Dispose();
|
|
}
|
|
}
|
|
}
|
|
|
|
public void Insertar(PRV_Actualizaciones _mdl_PRV_Actualizaciones)
|
|
{
|
|
Exferia_Entities obj_Exferia_Entities = null;
|
|
|
|
try
|
|
{
|
|
obj_Exferia_Entities = new Exferia_Entities();
|
|
obj_Exferia_Entities.Configuration.LazyLoadingEnabled = false;
|
|
|
|
// Grabar Datos
|
|
string str_SQL_Existe = " SELECT " +
|
|
nameof(PRV_Actualizaciones.id) +
|
|
" FROM " + nameof(PRV_Actualizaciones) +
|
|
//WHERE
|
|
" WHERE " + nameof(PRV_Actualizaciones) + "." + nameof(PRV_Actualizaciones.versionEFT_Numero_Numerica) + "=@versionEFT_Numero_Numerica";
|
|
|
|
//Parametros
|
|
object[] arr_Parametros_Existe = new object[]
|
|
{
|
|
new SqlParameter("@versionEFT_Numero_Numerica", _mdl_PRV_Actualizaciones.versionEFT_Numero_Numerica)
|
|
};
|
|
long? lng_id = obj_Exferia_Entities.Database.SqlQuery<long>(str_SQL_Existe, arr_Parametros_Existe).FirstOrDefault();
|
|
|
|
//Insertar
|
|
if (lng_id == null || lng_id.Value==0)
|
|
{
|
|
#region INSERT
|
|
string str_SQL_Insert = " INSERT INTO " + nameof(PRV_Actualizaciones) +
|
|
" (" +
|
|
nameof(PRV_Actualizaciones.versionETF_Numero_Texto) + "," +
|
|
nameof(PRV_Actualizaciones.versionEFT_Numero_Numerica) + "," +
|
|
nameof(PRV_Actualizaciones.fechaEjecucion) +
|
|
" ) " +
|
|
" VALUES " +
|
|
" ( " +
|
|
"@versionETF_Numero_Texto," +
|
|
"@versionEFT_Numero_Numerica," +
|
|
"@fechaEjecucion" +
|
|
" ) ";
|
|
//Parametros
|
|
object[] arr_Parametros_Insert = new object[]
|
|
{
|
|
new SqlParameter("@versionETF_Numero_Texto", _mdl_PRV_Actualizaciones.versionETF_Numero_Texto),
|
|
new SqlParameter("@versionEFT_Numero_Numerica", _mdl_PRV_Actualizaciones.versionEFT_Numero_Numerica),
|
|
new SqlParameter("@fechaEjecucion", _mdl_PRV_Actualizaciones.fechaEjecucion),
|
|
};
|
|
#endregion
|
|
|
|
obj_Exferia_Entities.Database.ExecuteSqlCommand(str_SQL_Insert, arr_Parametros_Insert);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Control_Errores(_mdl_PRV_Actualizaciones.versionETF_Numero_Texto, ex, nameof(PRV_Actualizaciones_Datos) + "/" + nameof(Insertar), true);
|
|
}
|
|
finally
|
|
{
|
|
obj_Exferia_Entities.Database.Connection.Close();
|
|
obj_Exferia_Entities.Dispose();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|