Exferia/Exferia_Actualizacion_BD/1_Datos/PRV_Actualizaciones_Datos.cs

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();
}
}
}
}