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 } }