using System; using System.Web; using System.Text; using System.Data; using System.Collections; using System.Collections.Generic; namespace PDFGenerator.BusinessLayer.DataSection { public class DSS146RischioDiversificazione : IDataSection { private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); private TipoReport _tiporeport; /// /// Tipologia report. /// public TipoReport TipoReport { get { return _tiporeport; } set { _tiporeport = value; } } public DataSectionResult getDataSection(List tabelleSessione, string querySql, DataThread dataThread) { try { DataSectionResult dsr = new DataSectionResult(); FormatNum conv = new FormatNum(); DataSetS146 dS146 = new DataSetS146(); DataSetS146.RischioDiversificazioneRow dr; DataSetS146.RischioPatrimonioFinanziarioRow patrimonioFinanziario; DataSetS146.RischioDiversificazioneTableRow rischioDiversificazione; dS146.RischioDiversificazione.Columns["Copertura"].Caption = "Copertura
(%)"; DataTable dt = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread); //V If I have only BF/SPI or if the report type is Monitoring I have to display only the first row of the query, if (dt.Rows.Count > 0 && (dt.Rows.Count < 3 || dataThread.TipoReport.ToUpper() == "MONITORAGGIO")) { DataRow row = dt.Rows[0]; dr = dS146.RischioDiversificazione.NewRischioDiversificazioneRow(); dr.patrimonio = row["patrimonio"].ToString(); //V non veniva fatto il caso del var a stringa (nc) /* if (row["varString"] != DBNull.Value) dr.var = row["varString"].ToString(); else dr.var = row["var"].ToString(); */ //// MZ: Show n.c. as a value for VAR if there is no coverage //if (row["coperturaString"] != DBNull.Value) //{ // dr.varString = row["varString"].ToString(); //} //else //{ // dr.varString = Convert.ToDecimal(row["var"]).ToString(); //} dr.var = Convert.ToDecimal(row["var"]); if (row["coperturaString"] != DBNull.Value) dr.copertura = row["coperturaString"].ToString(); else dr.copertura = conv.ConvertNum(row["copertura"]); dr.diversificazione = Convert.ToDecimal(row["diversificazione"]); dS146.RischioDiversificazione.Rows.Add(dr); patrimonioFinanziario = dS146.RischioPatrimonioFinanziario.NewRischioPatrimonioFinanziarioRow(); int profilo_code = Convert.ToInt32(row["profiloCode"]); //patrimonioFinanziario.descrizioneProfilo = "Profilo Cliente: " + profilo_code.ToString(); string valoreProfilo = getProfiloName(profilo_code); patrimonioFinanziario.descrizioneProfilo = "Profilo Cliente: " + valoreProfilo; patrimonioFinanziario.valoreProfilo = profilo_code.ToString(); patrimonioFinanziario.var = Convert.ToDecimal(SoglieVar.ConvOld(row["var_Profilo"])); dS146.RischioPatrimonioFinanziario.Rows.Add(patrimonioFinanziario); rischioDiversificazione = dS146.RischioDiversificazioneTable.NewRischioDiversificazioneTableRow(); rischioDiversificazione.patrimonio = row["patrimonio"].ToString(); // MZ: Show n.c. as a value for VAR if there is no coverage if (row["varString"] != DBNull.Value) { rischioDiversificazione.varString = row["varString"].ToString(); } else { rischioDiversificazione.varString = conv.ConvertNum(row["var"], 2).ToString(); } //dr.var = Convert.ToDecimal(row["var"]); if (row["coperturaString"] != DBNull.Value) rischioDiversificazione.copertura = row["coperturaString"].ToString(); else rischioDiversificazione.copertura = conv.ConvertNum(row["copertura"]); rischioDiversificazione.diversificazione = Convert.ToDecimal(row["diversificazione"]); dS146.RischioDiversificazioneTable.Rows.Add(rischioDiversificazione); } else if (dt.Rows.Count > 0) foreach (DataRow row in dt.Rows) { dr = dS146.RischioDiversificazione.NewRischioDiversificazioneRow(); dr.patrimonio = row["patrimonio"].ToString(); //V non veniva fatto il caso del var a stringa (nc) /* if (row["varString"] != DBNull.Value) dr.var = row["varString"].ToString(); else dr.var = row["var"].ToString(); */ dr.var = Convert.ToDecimal(row["var"]); if (row["coperturaString"] != DBNull.Value) dr.copertura = row["coperturaString"].ToString(); else dr.copertura = conv.ConvertNum(row["copertura"]); dr.diversificazione = Convert.ToDecimal(row["diversificazione"]); dS146.RischioDiversificazione.Rows.Add(dr); patrimonioFinanziario = dS146.RischioPatrimonioFinanziario.NewRischioPatrimonioFinanziarioRow(); int profilo_code = Convert.ToInt32(row["profiloCode"]); //patrimonioFinanziario.descrizioneProfilo = "Profilo Cliente: " + profilo_code.ToString(); string valoreProfilo = getProfiloName(profilo_code); patrimonioFinanziario.descrizioneProfilo = "Profilo Cliente: " + valoreProfilo; patrimonioFinanziario.valoreProfilo = profilo_code.ToString(); patrimonioFinanziario.var = Convert.ToDecimal(SoglieVar.ConvOld(row["var_profilo"])); dS146.RischioPatrimonioFinanziario.Rows.Add(patrimonioFinanziario); rischioDiversificazione = dS146.RischioDiversificazioneTable.NewRischioDiversificazioneTableRow(); rischioDiversificazione.patrimonio = row["patrimonio"].ToString(); // MZ: Show n.c. as a value for VAR if there is no coverage if (row["varString"] != DBNull.Value) { rischioDiversificazione.varString = row["varString"].ToString(); } else { rischioDiversificazione.varString = conv.ConvertNum(row["var"], 2).ToString(); } //dr.var = Convert.ToDecimal(row["var"]); if (row["coperturaString"] != DBNull.Value) rischioDiversificazione.copertura = row["coperturaString"].ToString(); else rischioDiversificazione.copertura = conv.ConvertNum(row["copertura"]); rischioDiversificazione.diversificazione = Convert.ToDecimal(row["diversificazione"]); dS146.RischioDiversificazioneTable.Rows.Add(rischioDiversificazione); } dsr.DatiSezione = dS146; dsr.Esito = dS146.RischioDiversificazione.Rows.Count; return dsr; }catch(Exception ex){ try { logger.Error(string.Concat(ex.Message, dataThread.CodiceFiscale, " varProfilo issue from ", querySql)); } catch { } } return null; } private string getProfiloName(int profilo_code) { string valoreProfilo = string.Empty; #region SWITCH CODICI PROFILO switch (profilo_code) { case 1: valoreProfilo += " Prudente"; break; case 2: valoreProfilo += " Moderato"; break; case 3: valoreProfilo += " Equilibrato"; break; case 4: valoreProfilo += " Dinamico"; break; case 5: valoreProfilo += " Aggressivo"; break; default: break; } #endregion return valoreProfilo; } } }