using System;
using Consulenza.ReportModeler.Manager;
using Consulenza.ReportCommon;
using Consulenza.DataServices;
namespace Consulenza.Unica.Business
{
///
/// Classe che si occupa della generazione dell report di consulenza unica.
/// Espone un metodo dedicato per ogni report di cui consulenza unica si compone.
///
public class GeneratorService
{
private readonly Int64 _chiaveClientePb;
private readonly Cliente _cliente = new Cliente();
private readonly PrivateBanker _privateBanker = new PrivateBanker();
public Consulenza.DataServices.DatiSeiUnico _datiSeiUnico;
public GeneratorService(Consulenza.DataServices.DatiSeiUnico datiSeiUnico) {
_datiSeiUnico = datiSeiUnico;
if (datiSeiUnico.all().clientePB != null)
{
_chiaveClientePb = datiSeiUnico.all().clientePB.chiaveClientePB;
_cliente = new Cliente
{
Chiave = _chiaveClientePb,
CodiceFiscale = _datiSeiUnico.clienteUnit().anagrafica.codiceFiscale,
Cognome = _datiSeiUnico.clienteUnit().anagrafica.cognome,
Nome = _datiSeiUnico.clienteUnit().anagrafica.nome,
PartitaIva = _datiSeiUnico.clienteUnit().anagrafica.partitaIva,
DataSottoscrizioneContratto = _datiSeiUnico.clienteUnit().anagrafica.dtSottoscrizione,
TipologiaContratto = _datiSeiUnico.clienteUnit().anagrafica.contratto,
DescrizioneProfilo = _datiSeiUnico.clienteUnit().anagrafica.descProfiloReport,
CodiceProfilo = _datiSeiUnico.clienteUnit().anagrafica.codProfilo
};
}
else {
_chiaveClientePb = 0;
_cliente = new Cliente
{
Chiave = _datiSeiUnico.all().nucleiUnit.anagrafica.chiaveNucleo,
CodiceFiscale = "",
Cognome = _datiSeiUnico.nucleiUnit() == null ? "" : _datiSeiUnico.nucleiUnit().anagrafica.nomeNucleo,
Nome = "",
PartitaIva = "",
TipologiaContratto = "",
DescrizioneProfilo = "",
CodiceProfilo = 0
};
}
_privateBanker = new PrivateBanker {
Cap = _datiSeiUnico.all().promotoreBancario.zipCode,
Citta = _datiSeiUnico.all().promotoreBancario.city,
Codice = _datiSeiUnico.all().promotoreBancario.codAge ,
CodiceRete = _datiSeiUnico.all().promotoreBancario.network,
Indirizzo = _datiSeiUnico.all().promotoreBancario.address,
Livello = _datiSeiUnico.all().promotoreBancario.rank,
Nominativo = string.Format("{0} {1}", _datiSeiUnico.all().promotoreBancario.surname, _datiSeiUnico.all().promotoreBancario.name),
NumeroCivico = "",
PrefissoTelefono = _datiSeiUnico.all().promotoreBancario.phonePrefix,
Telefono = _datiSeiUnico.all().promotoreBancario.phoneNumber
};
}
public GeneratorService() { }
public byte[] CreaReport_Unico(ReportStruct struttura, Consulenza.DataServices.DatiSeiUnico datiSeiUnico)
{
byte[] report;
try
{
_datiSeiUnico.Execute();
report = new ReportStructManager().CreateReport_Unico(struttura, datiSeiUnico);
}
catch (Exception ex)
{
throw new Exception(string.Format("Consulenza.Unica.Business.CreaReport_Unico(): {0}", ex.Message));
}
finally
{
}
return report;
}
///
/// Costruttore.
/// Recupera info su anagrafica del cliente e del privatebanker necessarie in tutte le sezioni del report.
///
/// chiaveclientepb
public GeneratorService(Int64 chiaveClientePb)
{
_chiaveClientePb = chiaveClientePb;
var dataAnagrafica = new DataServices.Anagrafica(chiaveClientePb);
_cliente = dataAnagrafica.GetCliente();
_privateBanker = dataAnagrafica.GetPrivateBanker();
}
///
/// Ottiene un array binario del PDF del report di Diagnosi di ConsulenzaUnica.
///
/// struttura del report
///
public byte[] CreaReport_Diagnosi(ReportStruct struttura)
{
byte[] report;
try
{
ReportStructManager reportStructManager = new ReportStructManager(_cliente, _privateBanker);
reportStructManager.datiSeiUnico = _datiSeiUnico;//FARE
report = reportStructManager.CreateReport_Diagnosi(_chiaveClientePb, struttura);
}
catch (Exception ex)
{
throw new Exception(string.Format("Consulenza.Unica.Business.CreaReport_Diagnosi(): {0}", ex.Message));
}
finally
{
//CacheStore.Clear(_chiaveClientePb);
}
return report;
}
///
/// Ottiene un array binario del PDF del report di Monitoraggio di ConsulenzaUnica.
///
/// struttura del report
///
public byte[] CreaReport_Monitoraggio(ReportStruct struttura)
{
byte[] report;
try
{
ReportStructManager reportStructManager = new ReportStructManager(_cliente, _privateBanker);
reportStructManager.datiSeiUnico = _datiSeiUnico;//FARE
report = reportStructManager.CreateReport_Monitoraggio(_chiaveClientePb, struttura);
}
catch (Exception ex)
{
throw new Exception(string.Format("Consulenza.Unica.Business.CreaReport_Monitoraggio(): {0}", ex.Message));
}
finally
{
//CacheStore.Clear(_chiaveClientePb);
}
return report;
}
///
/// Ottiene un array binario del PDF del report di Proposta di ConsulenzaUnica.
///
/// struttura del report
///
public byte[] CreaReport_Proposta(ReportStruct struttura)
{
byte[] report;
try
{
ReportStructManager reportStructManager = new ReportStructManager(_cliente, _privateBanker);
reportStructManager.datiSeiUnico = _datiSeiUnico;//FARE
report = reportStructManager.CreateReport_Proposta(_chiaveClientePb, struttura);
}
catch (Exception ex)
{
throw new Exception(string.Format("Consulenza.Unica.Business.CreaReport_Proposta(): {0}", ex.Message));
}
finally
{
//CacheStore.Clear(_chiaveClientePb);
}
return report;
}
///
/// Ottiene un array binario del PDF del report di Nucleo di ConsulenzaUnica.
///
/// struttura del report
///
public byte[] CreaReport_Nucleo(ReportStruct struttura)
{
byte[] report;
try
{
ReportStructManager reportStructManager = new ReportStructManager(_cliente, _privateBanker);
reportStructManager.datiSeiUnico = _datiSeiUnico;//FARE
report = reportStructManager.CreateReport_Nucleo(_chiaveClientePb, struttura);
}
catch (Exception ex)
{
throw new Exception(string.Format("Consulenza.Unica.Business.CreaReport_Nucleo(): {0}", ex.Message));
}
finally
{
// CacheStore.Clear(_chiaveClientePb);
}
return report;
}
}
}