351 lines
15 KiB
C#
351 lines
15 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Consulenza.WebTemplateModeler.Entity;
|
|
using System.Data;
|
|
using System.Transactions;
|
|
using System.Net;
|
|
using System.Net.Sockets;
|
|
using System.Configuration;
|
|
|
|
|
|
namespace Consulenza.WebTemplateModeler
|
|
{
|
|
public class WebTemplateManager
|
|
{
|
|
|
|
|
|
public List<Modello> GetModelli() {
|
|
return getModelli();
|
|
}
|
|
public Modello GetModello(int idModello)
|
|
{
|
|
return getModello(idModello);
|
|
}
|
|
public Modello GetModello(int idModello, string codicePB)
|
|
{
|
|
Modello modello = getModello(idModello);
|
|
modello.Templates = getTemplates(idModello, codicePB);
|
|
return modello;
|
|
}
|
|
public List<Vincolo> GetVincoli(long chiave,long proposta, string modello)
|
|
{
|
|
List<Vincolo> vincoli = getVincoli(chiave,proposta, modello);
|
|
return vincoli;
|
|
}
|
|
|
|
public List<Vincolo> GetVincoliNoChiave(string codiceAgente, string codiceFiscale, string codiceMandato, string codiceRete, long proposta, string modello)
|
|
{
|
|
List<Vincolo> vincoli = getVincoliNoChiave(codiceAgente, codiceFiscale, codiceMandato, codiceRete, proposta, modello);
|
|
return vincoli;
|
|
}
|
|
|
|
public List<Template> GetTemplates(int idModello, string codicePB)
|
|
{
|
|
return getTemplates(idModello, codicePB);
|
|
}
|
|
public Template GetTemplate(int idTemplate, string isDefault)
|
|
{
|
|
Template template = getTemplate(idTemplate, isDefault);
|
|
template.Schede = getSchedeTemplate(idTemplate,isDefault);
|
|
return template;
|
|
}
|
|
public List<SchedaTemplate> GetSchedeTemplate(int idTemplate, string isDefault)
|
|
{
|
|
return getSchedeTemplate(idTemplate, isDefault);
|
|
|
|
}
|
|
public int SetTemplate(string nomeTemplate, string codicePB, int idModello, List<Option> opzTemplate, List<SchedaTemplate> schede)
|
|
{
|
|
return setTemplate(nomeTemplate, codicePB, idModello, opzTemplate, schede);
|
|
|
|
}
|
|
public int DelTemplate(int idTemplate) {
|
|
return delTemplate(idTemplate); }
|
|
|
|
private List<Modello> getModelli() {
|
|
|
|
List<Parametro> param = new List<Parametro>();
|
|
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerWebTemplateReportModeler, "SEL_MODELLO", param);
|
|
|
|
return (from DataRow row in dt.Rows
|
|
select new Modello
|
|
{
|
|
Id = int.Parse(row["idModello"].ToString()),
|
|
Nome = row["nomeModello"].ToString(),
|
|
Rete = row["rete"].ToString(),
|
|
Options = Option.Format(row["opzModello"].ToString())
|
|
|
|
}).ToList<Modello>();
|
|
}
|
|
private Modello getModello(int idModello)
|
|
{
|
|
string ipPath = GetIPPath();
|
|
List<Parametro> param = new List<Parametro>();
|
|
param.Add(new Parametro { Value = idModello, ParameterName = "idModello" });
|
|
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerWebTemplateReportModeler, "SEL_MODELLO", param);
|
|
string banca = dt.Rows[0]["banca"].ToString();
|
|
string rete = dt.Rows[0]["rete"].ToString().Trim();
|
|
Modello modello = new Modello
|
|
{
|
|
Id = int.Parse(dt.Rows[0]["idModello"].ToString()),
|
|
Nome = dt.Rows[0]["nomeModello"].ToString(),
|
|
Rete = rete,
|
|
Options = Option.Format(dt.Rows[0]["opzModello"].ToString().Replace("[BANCA]", banca))
|
|
};
|
|
modello.Schede = (from DataRow row in dt.Rows
|
|
select new Scheda
|
|
{
|
|
Id = int.Parse(row["idScheda"].ToString()),
|
|
NomeImmagine = ipPath + rete+ row["nomeImmagineScheda"].ToString(),
|
|
NumTab = int.Parse(row["numTab"].ToString()),
|
|
Sezioni = row["sezioni"].ToString(),
|
|
TestoHTML = row["testoHTML"].ToString().Replace("[BANCA]", banca),
|
|
Vincoli = Vincolo.Format(row["vincoli"].ToString()),
|
|
Options = Option.Format(row["opzScheda"].ToString().Replace("[BANCA]", banca))
|
|
|
|
}).ToList<Scheda>();
|
|
|
|
dt = DataAccess.ExecuteDataTableSqlStatement(DBProvider.SqlServerWebTemplateReportModeler, "SELECT * FROM tabs where idModello = " + modello.Id + " order by numTab asc", new List<Parametro>());
|
|
|
|
modello.Tabs = (from DataRow row in dt.Rows
|
|
select new Tabs
|
|
{
|
|
IdModello = int.Parse(row["idModello"].ToString()),
|
|
NumTab = int.Parse(row["NumTab"].ToString()),
|
|
Titolo = row["Titolo"].ToString().Replace("[BANCA]", banca)
|
|
}).ToList<Tabs>();
|
|
|
|
filtraSchede(modello.Schede);
|
|
|
|
|
|
return modello;
|
|
}
|
|
public List<Vincolo> getVincoli(long chiave,long proposta, string modello)
|
|
{
|
|
List<Vincolo> vincoli = new List<Vincolo>();
|
|
try
|
|
{
|
|
List<Parametro> param = new List<Parametro>();
|
|
param.Add(new Parametro { Value = chiave, ParameterName = "chiave" });
|
|
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "rep_vincoli_" + modello, param);
|
|
foreach (DataColumn dc in dt.Columns)
|
|
{
|
|
vincoli.Add(new Vincolo
|
|
{
|
|
Key = dc.ColumnName,
|
|
Value = dt.Rows[0][dc.ColumnName].ToString()
|
|
});
|
|
}
|
|
}
|
|
catch (Exception ex) {
|
|
}
|
|
return vincoli;
|
|
|
|
}
|
|
|
|
public List<Vincolo> getVincoliNoChiave(string codiceAgente, string codiceFiscale, string codiceMandato, string codiceRete, long proposta, string modello)
|
|
{
|
|
List<Vincolo> vincoli = new List<Vincolo>();
|
|
try
|
|
{
|
|
string querySQL = "SELECT * FROM vInfoCliente WHERE codFis = '" + codiceFiscale + "' AND codMan='" + codiceMandato + "' AND Agente = '" + codiceAgente + "' AND rete = '" + codiceRete + "'";
|
|
var dtChiave = DataAccess.ExecuteDataTableSqlStatement(DBProvider.SqlServerConsulenzaUnica, querySQL, null);
|
|
if (dtChiave.Rows.Count == 0)
|
|
{
|
|
querySQL = "SELECT * FROM vInfoCliente WHERE pIva = '" + codiceFiscale + "' AND codMan='" + codiceMandato + "' AND Agente = '" + codiceAgente + "' AND rete = '" + codiceRete + "'";
|
|
dtChiave = DataAccess.ExecuteDataTableSqlStatement(DBProvider.SqlServerConsulenzaUnica, querySQL, null);
|
|
}
|
|
|
|
var chiave = dtChiave.Rows[0]["chiaveclientePb"].ToString();
|
|
|
|
List<Parametro> param = new List<Parametro>();
|
|
param.Add(new Parametro { Value = chiave, ParameterName = "chiave" });
|
|
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "rep_vincoli_" + modello, param);
|
|
foreach (DataColumn dc in dt.Columns)
|
|
{
|
|
vincoli.Add(new Vincolo
|
|
{
|
|
Key = dc.ColumnName,
|
|
Value = dt.Rows[0][dc.ColumnName].ToString()
|
|
});
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
}
|
|
return vincoli;
|
|
}
|
|
|
|
private List<Template> getTemplates(int idModello, string codicePB)
|
|
{
|
|
List<Parametro> param = new List<Parametro>();
|
|
param.Add(new Parametro { Value = idModello, ParameterName = "idModello" });
|
|
param.Add(new Parametro { Value = codicePB, ParameterName = "codicePB" });
|
|
param.Add(new Parametro { Value = 0, ParameterName = "idTemplate" });
|
|
param.Add(new Parametro { Value = "", ParameterName = "isDefault" });
|
|
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerWebTemplateReportModeler, "SEL_TEMPLATE", param);
|
|
return (from DataRow row in dt.Rows
|
|
select new Template
|
|
{
|
|
Id = int.Parse(row["idTemplate"].ToString()),
|
|
Nome = row["nomeTemplate"].ToString(),
|
|
CodicePb = row["codicePB"].ToString(),
|
|
IsDefault = row["Default"].ToString(),
|
|
IdModello = int.Parse(row["idModello"].ToString()),
|
|
Options = Option.Format(row["opzioni"].ToString())
|
|
|
|
}).ToList<Template>();
|
|
}
|
|
private Template getTemplate(int idTemplate, string isDefault)
|
|
{
|
|
List<Parametro> param = new List<Parametro>();
|
|
param.Add(new Parametro { Value = "", ParameterName = "idModello" });
|
|
param.Add(new Parametro { Value = "", ParameterName = "codicePB" });
|
|
param.Add(new Parametro { Value = idTemplate, ParameterName = "idTemplate" });
|
|
param.Add(new Parametro { Value = isDefault, ParameterName = "isDefault" });
|
|
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerWebTemplateReportModeler, "SEL_TEMPLATE", param);
|
|
return (from DataRow row in dt.Rows
|
|
select new Template
|
|
{
|
|
Id = int.Parse(row["idTemplate"].ToString()),
|
|
Nome = row["nomeTemplate"].ToString(),
|
|
CodicePb = row["codicePB"].ToString(),
|
|
IsDefault = row["Default"].ToString(),
|
|
IdModello = int.Parse(row["idModello"].ToString()),
|
|
Options = Option.Format(row["opzioni"].ToString())
|
|
|
|
}).Last<Template>();
|
|
}
|
|
private List<SchedaTemplate> getSchedeTemplate(int idTemplate, string isDefault)
|
|
{
|
|
List<Parametro> param = new List<Parametro>();
|
|
param.Add(new Parametro { Value = idTemplate, ParameterName = "idTemplate" });
|
|
param.Add(new Parametro { Value = isDefault, ParameterName = "default" });
|
|
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerWebTemplateReportModeler, "SEL_SCHEDETEMPLATE", param);
|
|
return (from DataRow row in dt.Rows
|
|
select new SchedaTemplate
|
|
{
|
|
Id = int.Parse(row["idSchede"].ToString()),
|
|
Options = Option.Format(row["opzioni"].ToString())
|
|
|
|
}).ToList<SchedaTemplate>();
|
|
|
|
|
|
|
|
}
|
|
private int setTemplate(string nomeTemplate, string codicePB, int idModello, List<Option> Options, List<SchedaTemplate> schede)
|
|
{
|
|
using (TransactionScope scope = new TransactionScope())
|
|
{
|
|
List<Parametro> pTemplate = new List<Parametro>();
|
|
pTemplate.Add(new Parametro { Value = nomeTemplate, ParameterName = "nomeTemplate" });
|
|
pTemplate.Add(new Parametro { Value = codicePB, ParameterName = "codicePB" });
|
|
pTemplate.Add(new Parametro { Value = idModello, ParameterName = "idModello" });
|
|
pTemplate.Add(new Parametro { Value = Option.Format(Options), ParameterName = "opzioni" });
|
|
|
|
int IdTemplate = (Int32)DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerWebTemplateReportModeler, "INS_TEMPLATE", pTemplate);
|
|
|
|
for (int i = 0; i < schede.Count; i++)
|
|
{
|
|
|
|
List<Parametro> pSchedeTemplate = new List<Parametro>();
|
|
pSchedeTemplate.Add(new Parametro { Value = IdTemplate, ParameterName = "idTemplate" });
|
|
pSchedeTemplate.Add(new Parametro { Value = schede[i].Id, ParameterName = "idSchede" });
|
|
pSchedeTemplate.Add(new Parametro { Value = (i + 1), ParameterName = "ordine" });
|
|
pSchedeTemplate.Add(new Parametro { Value = Option.Format(schede[i].Options), ParameterName = "opzioni" });
|
|
|
|
DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerWebTemplateReportModeler, "INS_SCHEDETEMPLATE", pSchedeTemplate);
|
|
|
|
}
|
|
scope.Complete();
|
|
return IdTemplate;
|
|
}
|
|
|
|
}
|
|
private int delTemplate(int idTemplate)
|
|
{
|
|
List<Parametro> pTemplate = new List<Parametro>();
|
|
pTemplate.Add(new Parametro { Value = idTemplate, ParameterName = "idTemplate" });
|
|
DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerWebTemplateReportModeler, "DEL_TEMPLATE", pTemplate);
|
|
return 1;
|
|
}
|
|
|
|
public static string GetIpHost()
|
|
{
|
|
string host = "???";
|
|
try
|
|
{
|
|
IPAddress[] ipv4Addresses = Array.FindAll(
|
|
Dns.GetHostEntry(string.Empty).AddressList,
|
|
a => a.AddressFamily == AddressFamily.InterNetwork);
|
|
host = ipv4Addresses[0].ToString();
|
|
switch (host) {
|
|
case "10.10.33.181":
|
|
host = "P1P2";
|
|
break;
|
|
case "10.14.152.9":
|
|
case "10.10.33.174":
|
|
host = "P1";
|
|
break;
|
|
case "10.14.152.29":
|
|
case "10.10.33.180":
|
|
host = "P2";
|
|
break;
|
|
case "10.10.33.169":
|
|
case "10.14.152.21":
|
|
host = "C";
|
|
break;
|
|
|
|
case "10.14.152.27":
|
|
host = "T";
|
|
break;
|
|
|
|
case "10.0.0.77":
|
|
host = "P2";
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
|
|
}
|
|
catch {
|
|
host = "err";
|
|
}
|
|
return host;
|
|
|
|
}
|
|
public static string GetIPPath()
|
|
{
|
|
//IPAddress[] ipv4Addresses = Array.FindAll(
|
|
//Dns.GetHostEntry(string.Empty).AddressList,
|
|
//a => a.AddressFamily == AddressFamily.InterNetwork);
|
|
//return "http://" + ipv4Addresses[0].ToString() + "/Consulenza.Unica.Services/imgreport/";
|
|
return ConfigurationManager.AppSettings["UrlImageSchede"].ToString()+"/";
|
|
|
|
}
|
|
|
|
private void filtraSchede(List<Scheda> schede)
|
|
{
|
|
try
|
|
{
|
|
string[] dsezioni = ConfigurationManager.AppSettings["disableSchede"].ToString().Split(',');
|
|
foreach (string dsezione in dsezioni)
|
|
{
|
|
foreach (Scheda scheda in schede)
|
|
{
|
|
if (dsezione.Equals(scheda.Sezioni))
|
|
{
|
|
schede.Remove(scheda);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch { }
|
|
|
|
}
|
|
}
|
|
}
|