using System;
using System.Data;
using System.Configuration;
using System.Collections.Generic;

/// <summary>
/// Summary description for DataBaseException
/// </summary>
public class DataBaseException : Exception
{

    private string _sqlFileName;
    public string SqlFileName
    {
        get { return _sqlFileName; }
        set { _sqlFileName = value; }
    }

    private List<Parametro> _parameters;
    public List<Parametro> Parameters
    {
        get { return _parameters; }
        set { _parameters = value; }
    }


    private string _commandText;
    public string CommandText
    {
        get { return _commandText; }
        set { _commandText = value; }
    }

    private string _connectionString;
    public string ConnectionStringWithoutCredentials
    {
        get { return _connectionString; }
        set { _connectionString = value; }
    }

    private Exception _eccezione;
    public Exception Eccezione
    {
        get { return _eccezione; }
        set { _eccezione = value; }
    }

    public DataBaseException(Exception ex, string connectionString, string commandText)
    {
        this._eccezione = ex;
        this._connectionString = connectionString;
        this._commandText = commandText;
    }
    public DataBaseException(Exception ex, string connectionString, string commandText, string sqlFileName)
        : this(ex, connectionString, commandText)
    {
        this._sqlFileName = sqlFileName;
    }

    public DataBaseException(Exception ex, string connectionString, string commandText, string sqlFileName, List<Parametro> parameters)
        : this(ex, connectionString, commandText, sqlFileName)
    {
        this._parameters = parameters;
    }

    public DataBaseException(Exception ex, string connectionString, string commandText, List<Parametro> parameters)
        : this(ex, connectionString, commandText)
    {
        this._parameters = parameters;
    }
}