using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Collections.Specialized; using System.Globalization; using System.Resources; using ContrattoSei.Utilities; using DataAccessLayer; using System.Data.SqlClient; using System.Data.Common; using System.Threading.Tasks; using System.Threading; using System.Configuration; namespace PDFGenerator.BusinessLayer { /// /// Risk Credit Classes. /// Marian Zaki /// 04052010 /// /*public enum RiskCreditClass { /// /// Class 1 /// Classe1, /// /// Class 2 /// Classe2, /// /// Class 3 /// Classe3 }*/ public class UtilityBusinessLayer { private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); private static DataThread ConstructFromDataReader(IDataReader reader) { //pk try { logger.Debug("Starting getting data for {0} {1} {2}", reader["codiceFiscale"].ToString(), reader["rete"].ToString(), reader["Tip_Contratto"].ToString()); } catch { } DataThread dataThread = new DataThread(DBProvider.SqlServerStampeC6); //RETE dataThread.DataLotto = ConfigurationManager.AppSettings["DataLotto"].ToString(); dataThread.Rete = reader["Rete"].ToString(); dataThread.NomeRete = reader["NomeRete"].ToString(); //AGENTE dataThread.Agente = reader["Agente"].ToString(); dataThread.CognomeAgente = reader["CognomeAgente"].ToString(); dataThread.NomeAgente = reader["NomeAgente"].ToString(); dataThread.IndirizzoAgente = reader["IndirizzoAgente"].ToString(); dataThread.CapAgente = reader["CapAgente"].ToString(); dataThread.CittaAgente = reader["CittaAgente"].ToString(); dataThread.TelefonoAgente = reader["TelefonoAgente"].ToString(); //CLIENTE dataThread.CodiceFiscale = reader["codiceFiscale"].ToString(); dataThread.CognomeCliente = reader["CognomeCliente"].ToString(); dataThread.NomeCliente = reader["NomeCliente"].ToString(); //PATRIMONI CLIENTE dataThread.profiloIsAct = Convert.ToBoolean(reader["ProfiloIsAct"]); //PATRIMONIO NON RAPPRESENTABILE dataThread.PatrimonioNonRappresentabile = (decimal)reader["PatrimonioNonRappresentabile"]; //PARTITE VIAGGIANTI dataThread.PartiteViaggiantiInvestimento = (decimal)reader["PartiteViaggiantiInv"]; dataThread.PartiteViaggiantiDisinvestimento = (decimal)reader["PartiteViaggiantiDisinv"]; //d.lisena dataThread.ContoCorrente = (decimal)reader["ContoCorrente"]; dataThread.Patrimonioaltroctv = (decimal)reader["Patrimonioaltroctv"]; dataThread.Patrimonioimmobiliarectv = (decimal)reader["Patrimonioimmobiliarectv"]; dataThread.Patrimonioterzictv = (decimal)reader["Patrimonioterzictv"]; dataThread.PatrimonioTerziContoCorrente = (decimal)reader["PatrimonioTerziContoCorrente"]; dataThread.PatrimonioterzictvAlNettoContoCorrente = (decimal)reader["PatrimonioterzictvAlNettoContoCorrente"]; dataThread.Patrimoniobancafideuramctv = (decimal)reader["Patrimoniobancafideuramctv"]; dataThread.PatrimonioBancaFideuramCtvAlNettoContoCorrente = (decimal)reader["patrimoniobancafideuramctvalnettocontocorrente"]; dataThread.NumeroIntermediari = (int)reader["NumeroIntermediari"]; dataThread.RisorseNonAssociate = (decimal)reader["RisorseNonAssociate"]; dataThread.VaRRisorseNonAssociate = (decimal)reader["VaRRisorseNonAssociate"]; dataThread.CoperturaRisorseNonAssociate = (decimal)reader["CoperturaRisorseNonAssociate"]; dataThread.VaRTotaleRisorseFinanziarie = (decimal)reader["VaRTotaleRisorseFinanziarie"]; dataThread.CoperturaTotaleRisorseFinanziarie = (decimal)reader["CoperturaTotaleRisorseFinanziarie"]; dataThread.TipoContratto = reader["Tip_Contratto"].ToString().Equals("2") ? TipoContratto.Private : reader["Tip_Contratto"].ToString().Equals("1") ? TipoContratto.Affluent : TipoContratto.Old; dataThread.ContrattoOld = reader["Contrattoold"].ToString().Equals("1") ? true : false; dataThread.NoMonitoraggio = reader["NoMonitoraggio"].ToString().Equals("1") ? true : false; //CONTRATTO // dataThread.GeneraDiagnosi = Convert.ToBoolean(reader["generaDiagnosi"]); dataThread.IdReportPDFDiagnosi = (Int32)reader["IdReportPDFDiagnosi"]; dataThread.IdReportPDFMonitoraggio = (Int32)reader["IdReportPDFMonitoraggio"]; dataThread.CodiceContratto = reader["CodiceContratto"].ToString(); int idReportDiagnosi = (Int32)reader["idReportDiagnosi"]; if (idReportDiagnosi != -1) { ReportType reportType = new ReportType(); reportType.IdReport = (Int32)reader["idReportDiagnosi"]; reportType.IdModello = (Int32)reader["idModelloDiagnosi"]; reportType.Descrizione = reader["descrizioneDiagnosi"].ToString(); reportType.TipoReport = TipoReport.DIAGNOSI; dataThread.ReportsType.Add(reportType); } int idReportMonitoraggio = (Int32)reader["idReportMonitoraggio"]; if (idReportMonitoraggio != -1) { ReportType reportType = new ReportType(); reportType.IdReport = (Int32)reader["idReportMonitoraggio"]; reportType.IdModello = (Int32)reader["idModelloMonitoraggio"]; reportType.Descrizione = reader["descrizioneMonitoraggio"].ToString(); reportType.TipoReport = TipoReport.MONITORAGGIO; dataThread.ReportsType.Add(reportType); DateTimeFormatInfo dfi = new CultureInfo("it-IT", false).DateTimeFormat; dataThread.DataFineTrimestreCorrente = Convert.ToDateTime(UtilityManager.getAppSetting("DataFineTrimestreCorrente"), dfi); } dataThread.AdesioneSuccessivaAvanzato = Convert.ToBoolean(reader["adesioneSuccessivaAvanzato"]); dataThread.Periodico = UtilityManager.getAppSetting("Periodico") == "0" ? false : true; try { logger.Debug("Getting data for {0} {1} {2} finished", reader["codiceFiscale"].ToString(), reader["rete"].ToString(), reader["Tip_Contratto"].ToString()); } catch { } return dataThread; } public List getDataThreads(int number) { List dataThreads = new List(); try { DataThread dataThread = null; string queryGetContratti = UtilityManager.getAppSetting("QueryContratti"); DbParameter[] pa = new SqlParameter[1] { new SqlParameter("volThreads", number) }; using (DataAccessDE dataAccess = new DataAccessDE(DBProvider.SqlServerStampeC6)) { SqlCommand cmd; using (IDataReader reader = dataAccess.ExecuteDataReader(CommandType.StoredProcedure, queryGetContratti, pa, out cmd)) { while (reader.Read()) { dataThread = ConstructFromDataReader(reader); dataThreads.Add(dataThread); } reader.Close(); } cmd.Dispose(); System.Threading.Tasks.Parallel.ForEach(dataThreads, t => { RischioRelativo_PesoPercentuale r = new RischioRelativo_PesoPercentuale(); r.DataSource = recuperaDatiCalcoloPeso_Rischio(t.DataAccess, t.Rete, t.CodiceFiscale); t.PesoPercentuale = r.calcolaPeso(); t.RischioRelativo = r.calcolaRischio(); t.ControvaloriTotali = r.calcolaControvaloriAttuali(); t.TotalNegativeCurrentAccountValue = getClientNegativeCurrentAccountsValue(t.DataAccess, t.Rete, t.CodiceFiscale); t.TotalSelfNegCurrentAccountValue = getClientSelfNegCurrentAccountValue(t.DataAccess, t.Rete, t.CodiceFiscale); }); } } catch (Exception ex) { try { logger.Error(String.Concat(ex.Message,", number: ", number.ToString())); } catch { } } if (dataThreads != null && dataThreads.Count > 0) return dataThreads; else return null; } public Task obtainDataThreadsAsync(List dataThreads, int number) { Task t = Task.Factory.StartNew(() => { List result = getDataThreads(number); dataThreads.Clear(); if (result != null) { foreach (DataThread dt in result) { dataThreads.Add(dt); } } }); return t; } /// /// Recupero il datatable sul quale effettuare il calcolo del peso e del rischo relativo a livello di area/progetto. /// Dalla [C6MartPeriodico].[PL_S82DatiSintetici] prendo i dati per le aree non d'investimento. /// Dalla [C6MartPeriodico].[PL_S82BisDatiSintetici] prendo i dati per le aree d'investimento. /// Oltre a dtDatiAREA e dtDatiPROGETTO vanno considerati anche i prodotti non associati a progetti. /// Ottengo 3 datatable e il datatable di return sarà il merge dei 3. /// /// private DataTable recuperaDatiCalcoloPeso_Rischio(DataAccessDE dataAccess, string rete, string codiceFiscale) { #region Settaggio parametri List parameters = new List() { new Parametro() {Value = rete, ParameterName ="Rete" }, new Parametro() {Value = codiceFiscale, ParameterName ="CodiceFiscale" }, }; #endregion DataTable dtDatiAREA = dataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[PL_S82DatiSintetici]", parameters); dtDatiAREA = dtDatiAREA.DefaultView.ToTable(false, "NEED_AREA", "CONTROVALOREATTUALE", "VAR_NEEDAREA", "VAR_NEEDAREASTRING", "ORDINAMENTO_PROGETTO"); DataTable dtDatiPROGETTO = dataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[PL_S82BisDatiSintetici]", parameters); dtDatiPROGETTO = dtDatiPROGETTO.DefaultView.ToTable(false, "NEED_AREA", "NOME_PROGETTO", "CONTROVALOREATTUALE", "VAR_NEEDAREA", "VAR_NEEDAREASTRING", "ORDINAMENTO_PROGETTO"); // Oltre a dtDatiAREA e dtDatiPROGETTO vanno considerati anche i prodotti non associati a progetti. DataTable dtProdottiNonAssociati = dataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[PL_Prodotti_Non_Associati_Area_Inv]", parameters); #region Creazione e popolamento DataTable dtProdottiNonAssociati DataTable dtDatiProdottiNonAssociati = new DataTable(); if (dtProdottiNonAssociati.Rows.Count > 0) { dtDatiProdottiNonAssociati.Columns.Add("need_area", typeof(string)); dtDatiProdottiNonAssociati.Columns.Add("NOME_PROGETTO", typeof(string)); dtDatiProdottiNonAssociati.Columns.Add("ControvaloreAttuale", typeof(decimal)); dtDatiProdottiNonAssociati.Columns.Add("var_needarea", typeof(decimal)); dtDatiProdottiNonAssociati.Columns.Add("var_needareaString", typeof(string)); dtDatiProdottiNonAssociati.Columns.Add("ORDINAMENTO_PROGETTO", typeof(int)); DataRow drDatiProdottiNonAssociati = dtDatiProdottiNonAssociati.NewRow(); drDatiProdottiNonAssociati["NEED_AREA"] = dtProdottiNonAssociati.Rows[0]["NEED_AREA"]; drDatiProdottiNonAssociati["NOME_PROGETTO"] = dtProdottiNonAssociati.Rows[0]["NOME_PROGETTO"]; drDatiProdottiNonAssociati["CONTROVALOREATTUALE"] = dtProdottiNonAssociati.Compute("Sum(CONTROVALOREATTUALE)", string.Empty); drDatiProdottiNonAssociati["var_needarea"] = dtProdottiNonAssociati.Rows[0]["var_needarea"]; drDatiProdottiNonAssociati["var_needareaString"] = dtProdottiNonAssociati.Rows[0]["var_needareaString"]; //drDatiProdottiNonAssociati["ORDINAMENTO_PROGETTO"] = Convert.ToInt32(dtDatiProdottiNonAssociati.Rows[0]["ORDINAMENTO_PROGETTO"]); drDatiProdottiNonAssociati["ORDINAMENTO_PROGETTO"] = Convert.ToInt32(dtProdottiNonAssociati.Rows[0]["ORDINAMENTO_PROGETTO"]); dtDatiProdottiNonAssociati.Rows.Add(drDatiProdottiNonAssociati); } #endregion DataTable dtDati = new DataTable(); // datatable di return dtDati = dtDatiAREA; dtDati.Merge(dtDatiPROGETTO); if (dtDatiProdottiNonAssociati.Rows.Count > 0) // se ho prodotti non associati a progetti li aggiungo nel calcolo finale del peso percentuale e rischio relativo dtDati.Merge(dtDatiProdottiNonAssociati); return dtDati; } private static decimal getClientSelfNegCurrentAccountValue(DataAccessDE dataAccess, string rete, string codiceFiscale) { #region Settaggio parametri List parameters = new List() { new Parametro() {Value = rete, ParameterName ="Rete" }, new Parametro() {Value = codiceFiscale, ParameterName ="CodiceFiscale" }, }; #endregion object ClientSelfNegCurrentAccountValue; if (UtilityManager.getAppSetting("Periodico") == "0") { ClientSelfNegCurrentAccountValue = dataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, "[C6Mart].[PL_GetClientSelfNegCurrentAccountValue]", parameters); } else { ClientSelfNegCurrentAccountValue = dataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[PL_GetClientSelfNegCurrentAccountValue]", parameters); } if (ClientSelfNegCurrentAccountValue != null) return decimal.Parse(ClientSelfNegCurrentAccountValue.ToString()); else return 0; } private static decimal getClientNegativeCurrentAccountsValue(DataAccessDE dataAccess, string rete, string codiceFiscale) { #region Settaggio parametri List parameters = new List() { new Parametro() {Value = rete, ParameterName ="Rete" }, new Parametro() {Value = codiceFiscale, ParameterName ="CodiceFiscale" }, }; #endregion object clientNegativeCurrentAccountsValue; if (UtilityManager.getAppSetting("Periodico") == "0") { clientNegativeCurrentAccountsValue = dataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, "[C6Mart].[PL_GetClientNegativeCurrentAccountsValue]", parameters); } else { clientNegativeCurrentAccountsValue = dataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[PL_GetClientNegativeCurrentAccountsValue]", parameters); } //object clientNegativeCurrentAccountsValue = DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[PL_GetClientNegativeCurrentAccountsValue]", parametri); if (clientNegativeCurrentAccountsValue != null) return decimal.Parse(clientNegativeCurrentAccountsValue.ToString()); else return 0; } public static StringCollection getMTQueries(ReportType reportType, DataAccessDE dataAccess) { StringCollection stringCollection = new StringCollection(); List parametri = new List(); Parametro parametro = new Parametro(); parametro.ParameterName = "idReport"; parametro.DbType = DbType.Int32; parametro.Value = reportType.IdReport; parametri.Add(parametro); parametro = new Parametro(); parametro.ParameterName = "idModello"; parametro.DbType = DbType.Int32; parametro.Value = reportType.IdModello; parametri.Add(parametro); bool checkPeriodico = (UtilityManager.getAppSetting("Periodico") == "1") ? true : false; if (checkPeriodico) { parametro = new Parametro(); parametro.ParameterName = "periodicita"; parametro.DbType = DbType.String; parametro.Value = 'T'; parametri.Add(parametro); } using (IDataReader reader = dataAccess.ExecuteDataReaderStoredProcedure(DBProvider.SqlServerStampeC6, "[C6Mart].[GESTIONE_C6_S_Generator]", parametri)) { string queryLetta; while (reader.Read()) { queryLetta = reader["querySqlSezione"].ToString(); if (!string.IsNullOrEmpty(queryLetta)) stringCollection.Add(reader["querySqlSezione"].ToString()); } } return stringCollection; } public static int getEndThread(DataThread dataThread, int idReport, int docPage) { if (UtilityManager.getAppSetting("SavePDFtoDISK") == "1") return 0; List parametri = new List(); Parametro parametro = new Parametro(); parametro.ParameterName = "Rete"; parametro.DbType = DbType.AnsiStringFixedLength; parametro.Value = dataThread.Rete; parametri.Add(parametro); parametro = new Parametro(); parametro.ParameterName = "CodiceFiscale"; parametro.DbType = DbType.String; parametro.Value = dataThread.CodiceFiscale; parametri.Add(parametro); parametro = new Parametro(); parametro.ParameterName = "TipoReport"; parametro.DbType = DbType.String; parametro.Value = dataThread.TipoReport; parametri.Add(parametro); string queryInserimento = UtilityManager.getAppSetting("SP_GESTIONE_INSERT_PDF_FTP_GET_ID"); //DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerStampeC6, queryInserimento, parametri); try { return Convert.ToInt32(dataThread.DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, queryInserimento, parametri)); } catch (Exception) { return -1; } } public static int setEndThread(DataThread dataThread, int idReport, int docPage) { if (UtilityManager.getAppSetting("SavePDFtoDISK") == "1") return 0; List parametri = new List(); Parametro parametro = new Parametro(); parametro.ParameterName = "Rete"; parametro.DbType = DbType.AnsiStringFixedLength; parametro.Value = dataThread.Rete; parametri.Add(parametro); parametro = new Parametro(); parametro.ParameterName = "CodiceFiscale"; parametro.DbType = DbType.String; parametro.Value = dataThread.CodiceFiscale; parametri.Add(parametro); //FC Gestione Parallelizzazione Processi // idReport è gestito dalla SP inserimento Gestione_Pdf_Ftp int idReportPdf = dataThread.TipoReport == TipoReport.DIAGNOSI.ToString() ? dataThread.IdReportPDFDiagnosi : dataThread.IdReportPDFMonitoraggio; idReportPdf = idReportPdf == 0 ? idReport : idReportPdf; parametro = new Parametro(); parametro.ParameterName = "idReport"; parametro.DbType = DbType.Int32; parametro.Value = idReportPdf; parametri.Add(parametro); parametro = new Parametro(); parametro.ParameterName = "NomeFile"; parametro.DbType = DbType.String; parametro.Value = dataThread.NomeFileReport; parametri.Add(parametro); parametro = new Parametro(); parametro.ParameterName = "TipoReport"; parametro.DbType = DbType.String; parametro.Value = dataThread.TipoReport; parametri.Add(parametro); parametro = new Parametro(); parametro.ParameterName = "NumeroPagine"; parametro.DbType = DbType.Int32; parametro.Value = docPage; parametri.Add(parametro); //V Se è un report periodico salvo anche l'RFA in GESTIONE_PDF_FTP if (dataThread.Periodico) { parametro = new Parametro(); parametro.ParameterName = "RFA"; parametro.DbType = DbType.Decimal; parametro.Value = dataThread.Patrimoniobancafideuramctv; parametri.Add(parametro); parametro = new Parametro(); parametro.ParameterName = "CodiceContratto"; parametro.DbType = DbType.String; parametro.Value = dataThread.CodiceContratto; parametri.Add(parametro); } string queryInserimento = UtilityManager.getAppSetting("QueryInserimentoPDF_FTP"); //DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerStampeC6, queryInserimento, parametri); var r = new object() ; try { r = dataThread.DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, queryInserimento, parametri); return Convert.ToInt32(r); } catch (Exception ex) { logger.Error(ex.Message + "::" + idReportPdf.ToString() + " " + dataThread.CodiceFiscale + " " + dataThread.TipoReport + r.ToString()); return -1; } } public static string ReplaceVariables(string testodarimpiazzare, DataThread _dataThread) { string testoOriginale = testodarimpiazzare; testoOriginale = testoOriginale.Replace("$/Area/$", _dataThread.AreaEstesa); if (_dataThread.Area != "Inv") testoOriginale = testoOriginale.Replace("$/AreaProgetto/$", _dataThread.AreaEstesa); else testoOriginale = testoOriginale.Replace("$/AreaProgetto/$", _dataThread.Progetto); if (_dataThread.Area != "Inv") testoOriginale = testoOriginale.Replace("$/AreaProgettoA/$", "all’area di " + _dataThread.AreaEstesa); else testoOriginale = testoOriginale.Replace("$/AreaProgettoA/$", "al progetto " + _dataThread.Progetto); if (_dataThread.Area != "Inv") testoOriginale = testoOriginale.Replace("$/AreaProgettoD/$", "dell’area di " + _dataThread.AreaEstesa); else testoOriginale = testoOriginale.Replace("$/AreaProgettoD/$", "del progetto " + _dataThread.Progetto); testoOriginale = testoOriginale.Replace("$/Progetto/$", _dataThread.Progetto); if (_dataThread.Intermediario == "Altro") testoOriginale = testoOriginale.Replace("$/Intermediario/$", "Altro intermediario"); else testoOriginale = testoOriginale.Replace("$/Intermediario/$", _dataThread.Intermediario); if (_dataThread.Rete == "F") //FC 26062015 Aggionamento nuova Ragione Sociale //testoOriginale = testoOriginale.Replace("$/Banca/$", "Banca Fideuram"); testoOriginale = testoOriginale.Replace("$/Banca/$", "Fideuram"); else testoOriginale = testoOriginale.Replace("$/Banca/$", "Sanpaolo Invest"); testoOriginale = testoOriginale.Replace("$/FontSize/$", "font size, "); return testoOriginale; } /// /// Sostituisce le variabili presenti nel testo (indicate con $/...../$ con il valore corrispondente /// I dati vengono presi dalle proprietà dell'oggetto sezione passato in input. /// /// /// public static string ReplaceVariables(string testodarimpiazzare, SezioneReport sezione) { string testoOriginale = testodarimpiazzare; char[] define = { '$', '/', ',', '.' }; const char Space = ' '; char[] delimiters = new char[] { Space }; // split the string and then iterate over the // resulting array of strings if (testodarimpiazzare != " ") foreach (string variabile in testodarimpiazzare.Split(delimiters)) { string app = variabile.TrimStart(define); app = app.TrimEnd(define); switch (app) { #region Area case "Area": testoOriginale = testoOriginale.Replace("$/Area/$", sezione.AreaProgettoDescrizione); break; #endregion #region AreaProgetto case "AreaProgetto": if (sezione.AreaProgettoCodice.ToLower() != "inv") testoOriginale = testoOriginale.Replace("$/AreaProgetto/$", sezione.AreaProgettoDescrizione); else testoOriginale = testoOriginale.Replace("$/AreaProgetto/$", sezione.NomeProgetto); break; #endregion } } return testoOriginale; } /// /// Sostituisce le variabili presenti nel testo (indicate con $/...../$ con il valore corrispondente /// I dati vengono presi dalle proprietà dell'oggetto sezione passato in input. /// Aggiunge gli apici all'inizio e alla fine del testo da rimpiazzato (solo per i nomi dei progetti investimento). /// /// testo /// oggetto sezione da cui prendere i dati /// Se true aggiunge le virgolette (apici) prima e dopo il testo sostituito /// public static string ReplaceVariables(string testodarimpiazzare, SezioneReport sezione, bool aggiuntaapici) { string testoOriginale = testodarimpiazzare; char[] define = { '$', '/', ',', '.' }; const char Space = ' '; char[] delimiters = new char[] { Space }; // split the string and then iterate over the // resulting array of strings if (testodarimpiazzare != " ") foreach (string variabile in testodarimpiazzare.Split(delimiters)) { string app = variabile.TrimStart(define); app = app.TrimEnd(define); switch (app) { #region Area case "Area": testoOriginale = testoOriginale.Replace("$/Area/$", sezione.AreaProgettoDescrizione); break; #endregion #region AreaProgetto case "AreaProgetto": if (sezione.AreaProgettoCodice.ToLower() != "inv") testoOriginale = testoOriginale.Replace("$/AreaProgetto/$", sezione.AreaProgettoDescrizione); else { if (aggiuntaapici) testoOriginale = testoOriginale.Replace("$/AreaProgetto/$", "''" + sezione.NomeProgetto + "''"); else testoOriginale = testoOriginale.Replace("$/AreaProgetto/$", sezione.NomeProgetto); } break; #endregion } } return testoOriginale; } /// /// Return the Risk Class depending on the passed value /// Marian Zaki /// 04052010 /// /// /// case 1: Class 1 /// case 2: Class 2 /// case 3: Class 3 /// /// The class name public static string GetRiskCreditClassName(string riskCreditClass) { float riskCreditClassFloatValue; int riskCreditClassValue = 0; string className = string.Empty; if (float.TryParse(riskCreditClass, out riskCreditClassFloatValue)) { riskCreditClassValue = Convert.ToInt32(riskCreditClassFloatValue); } else if (int.TryParse(riskCreditClass, out riskCreditClassValue)) { } if (riskCreditClassValue != 0) { switch (riskCreditClassValue) { case 1: className = Resource.RiskCreditClass1; break; case 2: className = Resource.RiskCreditClass2; break; case 3: className = Resource.RiskCreditClass3; break; case 4: className = Resource.RiskCreditOltreClasse3; break; default: className = string.Empty; break; } return className; } else return string.Empty; } public static string GetRiskCreditEmitClassName(string riskCreditClass) { float riskCreditClassFloatValue; int riskCreditClassValue = 0; string className = string.Empty; if (float.TryParse(riskCreditClass, out riskCreditClassFloatValue)) { riskCreditClassValue = Convert.ToInt32(riskCreditClassFloatValue); } else if (int.TryParse(riskCreditClass, out riskCreditClassValue)) { } if (riskCreditClassValue != 0) { switch (riskCreditClassValue) { case 1: className = Resource.RiskCreditClassEmit1; break; case 2: className = Resource.RiskCreditClassEmit2; break; case 3: className = Resource.RiskCreditClassEmit3; break; case 4: className = Resource.RiskCreditClassEmit4; break; case 5: className = Resource.RiskCreditClassEmit5; break; case 6: className = Resource.RiskCreditClassEmit6; break; case 7: className = Resource.RiskCreditClassEmit7; break; case 8: className = Resource.RiskCreditClassEmit8; break; case 9: className = Resource.RiskCreditClassEmit9; break; case 10: className = Resource.RiskCreditClassEmit10; break; default: className = string.Empty; break; } return className; } else return string.Empty; } } }