Files
Tritone/HorseRacingPredictor/HorseRacingPredictor/Football/Manager/Database.cs
T

60 lines
2.2 KiB
C#

using System;
using Microsoft.Data.SqlClient;
using System.Text.Json.Nodes;
using HorseRacingPredictor.Football.Database;
namespace HorseRacingPredictor.Football.Manager
{
internal class Database : HorseRacingPredictor.Manager.Database
{
public Database() : base(AppConfig.FootballConnectionString) { }
// Usato il modificatore "new" per evitare il warning CS0108
protected new void LogError(string operation, Exception ex)
{
base.LogError(operation, ex);
}
// Usato il modificatore "new" per evitare il warning CS0108
protected new void ExecuteQuery(string operation, Action<SqlConnection> action)
{
base.ExecuteQuery(operation, action);
}
// Aggiunto il modificatore "new" per evitare il warning CS0108
protected new void ExecuteTransactionalQuery(string operation, Action<SqlConnection, SqlTransaction> action)
{
base.ExecuteTransactionalQuery(operation, action);
}
// Questo metodo ora è vuoto e sarà implementato nella Main
public void ProcessAndInsertData(string jsonResponse)
{
// Il codice è stato spostato in Football.Main
LogError("l'elaborazione dei dati calcistici", new NotImplementedException("Questo metodo è stato spostato in Football.Main"));
}
/// <summary>
/// Disabilita temporaneamente tutti i vincoli di chiave esterna nel database
/// </summary>
public void DisableAllConstraints(SqlConnection connection, SqlTransaction transaction)
{
using (var cmd = new SqlCommand("EXEC sp_MSforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'", connection, transaction))
{
cmd.ExecuteNonQuery();
}
}
/// <summary>
/// Riattiva tutti i vincoli di chiave esterna nel database
/// </summary>
public void EnableAllConstraints(SqlConnection connection, SqlTransaction transaction)
{
using (var cmd = new SqlCommand("EXEC sp_MSforeachtable 'ALTER TABLE ? CHECK CONSTRAINT ALL'", connection, transaction))
{
cmd.ExecuteNonQuery();
}
}
}
}