using System.Collections.Generic;
using System.Data;
using System.Web;
using System.IO;
using System;
using PDFGenerator.BusinessLayer.DataSection;
using DataAccessLayer;
using System.Linq;
namespace PDFGenerator.BusinessLayer
{
///
/// Summary description for SectionManager
///
///
public class SectionManager
{
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
#region public methods
//public static DataTable GetDataSection(List tabelleSessione, string storedProcedure)
//{
// return getDataTable(tabelleSessione, storedProcedure, null);
//}
public static DataTable GetDataSection(List tabelleSessione, string storedProcedure, DataThread dataThread)
{
List listaParametri = null;
switch (storedProcedure.ToUpper())
{
case "[C6MART].[GESTIONE_S_INTERMEDIARI]":
case "[C6MARTPERIODICO].[GESTIONE_S_INTERMEDIARI]":
listaParametri = GetParameterListSeparateReteCodiceFiscale(dataThread.Rete, dataThread.CodiceFiscale);
break;
case "[C6MART].[PL_DSS1PATRIMONIOCOMPLESSIVO]":
listaParametri = GetParameterListSeparateReteAgente(dataThread.Agente, dataThread.CodiceFiscale, dataThread.Rete);
break;
case "[C6MARTPERIODICO].[PL_S80ALTERNATIVA_DIDASCALIENOTE]":
listaParametri = new List();
break;
/******************** modifica Nota Dinamica 11-03-2021 - Pino ************************************/
case "[C6STAGINGPERIODICO].[CLIENTEPRODOTTIFAI]":
listaParametri = GetParameterListReteCodFis(dataThread.Rete, dataThread.CodiceFiscale);
break;
/*************************************************************************************************/
default:
listaParametri = GetParameterList(dataThread.Agente, dataThread.CodiceFiscale, dataThread.Rete);
break;
}
return getDataTable(tabelleSessione, storedProcedure, listaParametri, dataThread.DataAccess);
}
//public static DataTable GetDataSection(List tabelleSessione, string storedProcedure, string codicePB, string codicecliente, string codicerete)
//{
// List listaParametri = null;
// switch (storedProcedure.ToUpper())
// {
// case "CTABLE_MENU_CARATTERISTICHE_PATRIMONIO":
// case "CTABLE_MENU_CARATTERISTICHE_VARIE":
// case "FRAMES":
// case "GENERATOR_SETCLIENTE":
// listaParametri = GetParameterListSeparateReteAgente(codicePB, codicecliente, codicerete);
// break;
// default:
// listaParametri = GetParameterList(codicePB, codicecliente, codicerete);
// break;
// }
// return getDataTable(tabelleSessione, storedProcedure, listaParametri);
//}
//public static DataTable GetDataSection(List tabelleSessione, string storedProcedure, string reteAgente, string codicecliente)
//{
// List listaParametri = null;
// switch (storedProcedure.ToUpper())
// {
// case "GENERATOR_SETCLIENTE":
// listaParametri = GetParameterListSeparateReteAgente(reteAgente.Remove(0, 1), codicecliente, reteAgente.Remove(1, reteAgente.Length - 1));
// break;
// default:
// listaParametri = GetParameterList(reteAgente, codicecliente);
// break;
// }
// return getDataTable(tabelleSessione, storedProcedure, listaParametri);
//}
#endregion
#region private methods
private static List GetParameterList(string codicePB, string codiceCliente, string codiceRete, string parameterName, object _value, DbType _dbtype)
{
List ParameterStoredProcedureList = GetParameterList(codicePB, codiceCliente, codiceRete);
Parametro param = new Parametro();
param.ParameterName = parameterName;
param.Value = _value;
param.DbType = _dbtype;
ParameterStoredProcedureList.Add(param);
return ParameterStoredProcedureList;
}
private static List GetParameterList(string codicePB, string codiceCliente, string codiceRete, string parameterName, object _value, DbType _dbtype, string parameterName1, object _value1, DbType _dbtype1)
{
List ParameterStoredProcedureList = GetParameterList(codicePB, codiceCliente, codiceRete);
Parametro param = new Parametro();
param.ParameterName = parameterName;
param.Value = _value;
param.DbType = _dbtype;
ParameterStoredProcedureList.Add(param);
Parametro param1 = new Parametro();
param1.ParameterName = parameterName1;
param1.Value = _value1;
param1.DbType = _dbtype1;
ParameterStoredProcedureList.Add(param1);
return ParameterStoredProcedureList;
}
private static List GetParameterList(string codicePB, string codiceCliente, string codiceRete, string parameterName, object _value, DbType _dbtype, string parameterName1, object _value1, DbType _dbtype1, string parameterName2, object _value2, DbType _dbtype2)
{
List ParameterStoredProcedureList = GetParameterList(codicePB, codiceCliente, codiceRete);
Parametro param = new Parametro();
param.ParameterName = parameterName;
param.Value = _value;
param.DbType = _dbtype;
ParameterStoredProcedureList.Add(param);
Parametro param1 = new Parametro();
param1.ParameterName = parameterName1;
param1.Value = _value1;
param1.DbType = _dbtype1;
ParameterStoredProcedureList.Add(param1);
Parametro param2 = new Parametro();
param2.ParameterName = parameterName2;
param2.Value = _value2;
param2.DbType = _dbtype2;
ParameterStoredProcedureList.Add(param2);
return ParameterStoredProcedureList;
}
private static List GetParameterListSeparateReteAgente(string codicePB, string codiceCliente, string codiceRete, string parameterName, object _value, DbType _dbtype, string parameterName1, object _value1, DbType _dbtype1)
{
List ParameterStoredProcedureList = GetParameterListSeparateReteAgente(codicePB, codiceCliente, codiceRete);
Parametro param = new Parametro();
param.ParameterName = parameterName;
param.Value = _value;
param.DbType = _dbtype;
ParameterStoredProcedureList.Add(param);
Parametro param1 = new Parametro();
param1.ParameterName = parameterName1;
param1.Value = _value1;
param1.DbType = _dbtype1;
ParameterStoredProcedureList.Add(param1);
return ParameterStoredProcedureList;
}
private static List GetParameterListSeparateReteAgente(string codicePB, string codiceCliente, string codiceRete, string parameterName, object _value, DbType _dbtype)
{
List ParameterStoredProcedureList = GetParameterListSeparateReteAgente(codicePB, codiceCliente, codiceRete);
Parametro param = new Parametro();
param.ParameterName = parameterName;
param.Value = _value;
param.DbType = _dbtype;
ParameterStoredProcedureList.Add(param);
return ParameterStoredProcedureList;
}
private static List GetParameterListSeparateReteCodiceFiscale(string codiceRete, string codiceCliente)
{
List ParameterStoredProcedureList = new List();
Parametro param;
param = new Parametro();
param.ParameterName = "rete";
param.Value = codiceRete;
param.DbType = DbType.String;
ParameterStoredProcedureList.Add(param);
param = new Parametro();
param.ParameterName = "codiceCliente";
param.Value = codiceCliente;
param.DbType = DbType.String;
ParameterStoredProcedureList.Add(param);
return ParameterStoredProcedureList;
}
private static List GetParameterListSeparateReteAgente(string codicePB, string codiceCliente, string codiceRete)
{
List ParameterStoredProcedureList = new List();
Parametro param;
param = new Parametro();
param.ParameterName = "rete";
param.Value = codiceRete;
param.DbType = DbType.String;
ParameterStoredProcedureList.Add(param);
param = new Parametro();
param.ParameterName = "reteAgente";
param.Value = codiceRete + codicePB;
param.DbType = DbType.String;
ParameterStoredProcedureList.Add(param);
param = new Parametro();
param.ParameterName = "codiceCliente";
param.Value = codiceCliente;
param.DbType = DbType.String;
ParameterStoredProcedureList.Add(param);
return ParameterStoredProcedureList;
}
private static List GetParameterListSeparateReteAgente(string codicePB, string codiceCliente, string codiceRete, string parameterName, object _value, DbType _dbtype, string parameterName1, object _value1, DbType _dbtype1, string parameterName2, object _value2, DbType _dbtype2)
{
List ParameterStoredProcedureList = GetParameterListSeparateReteAgente(codicePB, codiceCliente, codiceRete);
Parametro param = new Parametro();
param.ParameterName = parameterName;
param.Value = _value;
param.DbType = _dbtype;
ParameterStoredProcedureList.Add(param);
Parametro param1 = new Parametro();
param1.ParameterName = parameterName1;
param1.Value = _value1;
param1.DbType = _dbtype1;
ParameterStoredProcedureList.Add(param1);
Parametro param2 = new Parametro();
param2.ParameterName = parameterName2;
param2.Value = _value2;
param2.DbType = _dbtype2;
ParameterStoredProcedureList.Add(param2);
return ParameterStoredProcedureList;
}
private static List GetParameterList(string codicePB, string codiceCliente, string codiceRete)
{
List ParameterStoredProcedureList = new List();
Parametro param;
param = new Parametro();
//param.ParameterName = "reteAgente";
//param.Value = codiceRete + codicePB;
param.ParameterName = "Rete";
param.Value = codiceRete;
param.DbType = DbType.String;
ParameterStoredProcedureList.Add(param);
param = new Parametro();
param.ParameterName = "CodiceFiscale";
param.Value = codiceCliente;
param.DbType = DbType.String;
ParameterStoredProcedureList.Add(param);
return ParameterStoredProcedureList;
}
/************************ Modifica nota Dinamica 11-03-2021 - Pino *********************************/
private static List GetParameterListReteCodFis(string rete,string codiceFiscale)
{
List ParameterStoredProcedureList = new List();
Parametro param;
param = new Parametro();
param.ParameterName = "Rete";
param.Value = rete;
param.DbType = DbType.String;
ParameterStoredProcedureList.Add(param);
param = new Parametro();
param.ParameterName = "CodiceFiscale";
param.Value = codiceFiscale;
param.DbType = DbType.String;
ParameterStoredProcedureList.Add(param);
return ParameterStoredProcedureList;
}
public static DataTable GetDataTable(string storedProcedure, List listaParametri, DataAccessDE dataAccess)
{
DataTable dataTable = null;
try
{
dataTable = dataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerStampeC6, storedProcedure, listaParametri);
dataTable.TableName = storedProcedure;
return dataTable;
}
catch (Exception ex)
{
throw ex;
}
}
/***************************************************************************************************/
private static List GetParameterList(string reteAgente, string codiceCliente)
{
List ParameterStoredProcedureList = new List();
Parametro param;
param = new Parametro();
param.ParameterName = "reteAgente";
param.Value = reteAgente;
param.DbType = DbType.String;
ParameterStoredProcedureList.Add(param);
param = new Parametro();
param.ParameterName = "codiceCliente";
param.Value = codiceCliente;
param.DbType = DbType.String;
ParameterStoredProcedureList.Add(param);
return ParameterStoredProcedureList;
}
private static List GetParameterList(string codiceCliente)
{
List ParameterStoredProcedureList = new List();
Parametro param;
param = new Parametro();
param.ParameterName = "codiceCliente";
param.Value = codiceCliente;
param.DbType = DbType.String;
ParameterStoredProcedureList.Add(param);
return ParameterStoredProcedureList;
}
private static DataTable getDataTable(List tabelleSessione, string storedProcedure, List listaParametri, DataAccessDE dataAccess)
{
string chiave = storedProcedure;
foreach (Parametro parametro in listaParametri)
{
if (parametro.Value != null)
chiave += "|" + parametro.Value.ToString();
else
chiave += "|" + string.Empty;
}
SessionStruct sessionStruct = tabelleSessione.Find(delegate (SessionStruct s) { return s.Chiave == chiave; });
if (sessionStruct != null)
{
return sessionStruct.Tabella;
}
else {
DataTable dataTable = null;
try
{
dataTable = dataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerStampeC6, storedProcedure, listaParametri);
dataTable.TableName = storedProcedure;
tabelleSessione.Add(new SessionStruct(chiave, dataTable));
return dataTable;
}
catch (Exception ex)
{
throw ex;
}
}
}
#endregion
}
}