using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections; using PDFGenerator.BusinessLayer.DataSection; using PDFGenerator.BusinessLayer; using System.Collections.Generic; namespace PDFGenerator.BusinessLayer.DataSection { class DSS128ProfiliRischioAdeguatezza : IDataSection { private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); public DSS128ProfiliRischioAdeguatezza() { // // TODO: Add constructor logic here // } #region IDataSection Members /// /// Implement the getDataSection function of the interface IDataSection. /// /// /// Sql Statment to be executed to return the Profile Risk of the certain customer in a certain network /// /// Data Table to be shown in the report public DataSectionResult getDataSection(List tabelleSessione, string querySql, DataThread dataThread) { try { /*** TEST - Verifica Tempistica 09/11/2023 - Pino ****/ /*** Inserimento log per verifica tempistica della sezione ***/ //DateTimeOffset dateOffsetValueIni = DateTimeOffset.Parse(DateTime.Now.ToString("hh:mm:ss.ffff")); /*************************************************************/ DataSectionResult customerProfiliRischioAdeguatezzaDataSectionResult = new DataSectionResult(); //Random rnd = new Random(); DataRow customerProfiliRischioAdeguatezzaDataRow; DataTable customerProfiliRischioAdeguatezzaDataTable = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread); DataSetS128 customerProfiliRischioAdeguatezzaRecordsDataSetS128 = new DataSetS128(); if (dataThread.ProfiloIsAct && customerProfiliRischioAdeguatezzaDataTable!=null && customerProfiliRischioAdeguatezzaDataTable.Rows.Count > 0) { int profiloRischioClienteAssegnato = Convert.ToInt32(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["codiceProfilo"]); #region Creazione righe datatable ProfiloRischio // Profilo di Rischio customerProfiliRischioAdeguatezzaDataRow = customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiloRischio.NewRow(); customerProfiliRischioAdeguatezzaDataRow["Descrizione"] = "Profilo Finanziario"; /*** Fix - Rafforazamento controllo sul campo Scaduto 23/11/2023 - Pino ***/ if (dataThread.Scaduto != 2) customerProfiliRischioAdeguatezzaDataRow["Valore"] = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["codiceProfilo"].ToString() + " - " + customerProfiliRischioAdeguatezzaDataTable.Rows[0]["nomeProfilo"].ToString(); else customerProfiliRischioAdeguatezzaDataRow["Valore"] =string.Concat("",customerProfiliRischioAdeguatezzaDataTable.Rows[0]["nomeProfilo"].ToString(),""); /***************************************************************************/ customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiloRischio.Rows.Add(customerProfiliRischioAdeguatezzaDataRow); #endregion #region Creazione righe datatable Colonne // Colonne customerProfiliRischioAdeguatezzaDataRow = customerProfiliRischioAdeguatezzaRecordsDataSetS128.ColonneRed.NewRow(); customerProfiliRischioAdeguatezzaDataRow["Limite"] = "Limite massimo profilo finanziario"; customerProfiliRischioAdeguatezzaDataRow["Patrimonio"] = "Patrimonio " + dataThread.NomeRete; customerProfiliRischioAdeguatezzaRecordsDataSetS128.ColonneRed.Rows.Add(customerProfiliRischioAdeguatezzaDataRow); #endregion string varr = SoglieVar.ConvOld(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["varMassimo"]); if (dataThread.IsProfessionalClient && dataThread.RiskArea == 5) varr = "50,00"; string x = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["varPatrimonioBF"].ToString(); #region Creazione righe datatable Rischio Mercato // Rischio Mercato customerProfiliRischioAdeguatezzaDataRow = customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiliRischioAdeguatezza.NewRow(); customerProfiliRischioAdeguatezzaDataRow["Descrizione"] = "Rischio (VaR%)"; /*** Fix - Rafforzamento controllo sul campo Scaduto 23/11/2023 - Pino ***/ if (dataThread.Scaduto != 2) customerProfiliRischioAdeguatezzaDataRow["LimiteMax"] = varr; else customerProfiliRischioAdeguatezzaDataRow["LimiteMax"] = "-"; /*************************************************************************/ customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["varPatrimonioBF"].ToString(); customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiliRischioAdeguatezza.Rows.Add(customerProfiliRischioAdeguatezzaDataRow); #endregion #region Creazione righe datatable Rischio Credito // Rischio Credito customerProfiliRischioAdeguatezzaDataRow = customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiliRischioAdeguatezza.NewRow(); customerProfiliRischioAdeguatezzaDataRow["Descrizione"] = "Rischio Credito"; customerProfiliRischioAdeguatezzaDataRow["LimiteMax"] = UtilityBusinessLayer.GetRiskCreditClassName(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["RiskClass"].ToString()); if (UtilityBusinessLayer.GetRiskCreditClassName(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["riskClassBF"].ToString()) == "") customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = "n.a."; else customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = UtilityBusinessLayer.GetRiskCreditClassName(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["riskClassBF"].ToString()); customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiliRischioAdeguatezza.Rows.Add(customerProfiliRischioAdeguatezzaDataRow); #endregion #region Creazione righe datatable Complessità // Rischio Credito customerProfiliRischioAdeguatezzaDataRow = customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiliRischioAdeguatezza.NewRow(); customerProfiliRischioAdeguatezzaDataRow["Descrizione"] = "Complessità"; //customerProfiliRischioAdeguatezzaDataRow["LimiteMax"] = UtilityBusinessLayer.GetRiskCreditClassName(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["RiskClass"].ToString()); //if (UtilityBusinessLayer.GetRiskCreditClassName(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["riskClassBF"].ToString()) == "") // customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = "n.a."; //else // customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = UtilityBusinessLayer.GetRiskCreditClassName(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["riskClassBF"].ToString()); //customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiliRischioAdeguatezza.Rows.Add(customerProfiliRischioAdeguatezzaDataRow); //MIFID2 20180702 CR Napolitano // Per i clienti professionali i valori relativi alla Complessità vanno impostati a "n.a." /**** Fix - Non esiste più la differenza tra Professionale e non 11092023 - Pino *************/ //if (dataThread.IsProffesionalClient) //{ // customerProfiliRischioAdeguatezzaDataRow["LimiteMax"] = "n.a."; // //20180914 su segnalazione Napolitano // //customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = "n.a."; // customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["LimiteComplessitaPatrimonio"].ToString(); // //--20180914 //} //else //{ // customerProfiliRischioAdeguatezzaDataRow["LimiteMax"] = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["LimiteComplessitaProfilo"].ToString(); // customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["LimiteComplessitaPatrimonio"].ToString(); //} customerProfiliRischioAdeguatezzaDataRow["LimiteMax"] = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["LimiteComplessitaProfilo"].ToString(); customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["LimiteComplessitaPatrimonio"].ToString(); /**************************************************************************************************/ customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiliRischioAdeguatezza.Rows.Add(customerProfiliRischioAdeguatezzaDataRow); #endregion } customerProfiliRischioAdeguatezzaDataSectionResult.DatiSezione = customerProfiliRischioAdeguatezzaRecordsDataSetS128; customerProfiliRischioAdeguatezzaDataSectionResult.Esito = customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiloRischio.Rows.Count; //MIFID2 20180531 Gestire anche la copertura (serve per il testo sulla copertura nella S128 DataRow CoperturaRow = customerProfiliRischioAdeguatezzaRecordsDataSetS128.Copertura.NewRow(); if (customerProfiliRischioAdeguatezzaDataTable!=null) CoperturaRow["Valore"] = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["CoperturaBF"].ToString(); else CoperturaRow["Valore"] = string.Empty; customerProfiliRischioAdeguatezzaRecordsDataSetS128.Copertura.Rows.Add(CoperturaRow); //--MIFID2 /*** TEST - Verifica Tempistica 09/11/2023 - Pino ****/ /*** Inserimento log per verifica tempistica della sezione ***/ //DateTimeOffset dateOffsetValueFin = DateTimeOffset.Parse(DateTime.Now.ToString("hh:mm:ss.ffff")); //var tDiff = dateOffsetValueFin - dateOffsetValueIni; //logger.Trace("DSS128 - Tempo Esecuzione" + tDiff.ToString()); /**************************************************************/ return customerProfiliRischioAdeguatezzaDataSectionResult; } catch (Exception ex) { logger.Error(ex); throw ex; } } #endregion } }