145 lines
8.0 KiB
C#
145 lines
8.0 KiB
C#
using System.Collections.Generic;
|
|
using System.Data;
|
|
using Consulenza.ReportCommon;
|
|
using System;
|
|
using System.Linq;
|
|
|
|
namespace Consulenza.ReportWriter.Manager
|
|
{
|
|
public enum SectionLoggerMessageLevel
|
|
{
|
|
/// <summary>
|
|
/// Errore
|
|
/// </summary>
|
|
E,
|
|
|
|
/// <summary>
|
|
/// Warning
|
|
/// </summary>
|
|
W,
|
|
|
|
/// <summary>
|
|
/// Informazione
|
|
/// </summary>
|
|
I
|
|
}
|
|
|
|
/// <summary>
|
|
/// Si occupa di scrivere Errori, Warning o Information in funzione del TipoReport.
|
|
/// Per ConsulenzaBase_Proposta scrive attraverso la stored sp_ReportProposal_SectionLogger_Write nella tabella [ConsulenzaBase].[Global_Error].
|
|
/// Per ConsulenzaEvoluta_Immobiliare scrive attraverso la stored "REP_TracciaErrore2" nella tabella [ConsulenzaEvoluta].[REP_Errore2].
|
|
/// </summary>
|
|
public static class SectionLogger
|
|
{
|
|
/// <summary>
|
|
/// Scrive il log.
|
|
/// </summary>
|
|
/// <param name="classSender"></param>
|
|
/// <param name="message"></param>
|
|
/// <param name="level"></param>
|
|
/// <param name="reportEnvironment"></param>
|
|
public static void Write(string classSender, string message, SectionLoggerMessageLevel level, ReportEnvironment reportEnvironment)
|
|
{
|
|
var parametri = new List<Parametro>
|
|
{
|
|
new Parametro
|
|
{
|
|
DbType = DbType.String,
|
|
Direction = ParameterDirection.Input,
|
|
ParameterName = "TipoReport",
|
|
Value = reportEnvironment.ReportType.ToString()
|
|
},
|
|
new Parametro
|
|
{
|
|
DbType = DbType.Int32,
|
|
Direction = ParameterDirection.Input,
|
|
ParameterName = "ChiavePb",
|
|
Value = reportEnvironment.Cliente.Chiave
|
|
},
|
|
new Parametro
|
|
{
|
|
DbType = DbType.String,
|
|
Direction = ParameterDirection.Input,
|
|
ParameterName = "Rete",
|
|
Value = reportEnvironment.PrivateBanker.CodiceRete
|
|
},
|
|
new Parametro
|
|
{
|
|
DbType = DbType.String,
|
|
Direction = ParameterDirection.Input,
|
|
ParameterName = "ClassSender",
|
|
Value = classSender
|
|
},
|
|
new Parametro
|
|
{
|
|
DbType = DbType.String,
|
|
Direction = ParameterDirection.Input,
|
|
ParameterName = "Messaggio",
|
|
Value = message
|
|
},
|
|
new Parametro
|
|
{
|
|
DbType = DbType.String,
|
|
Direction = ParameterDirection.Input,
|
|
ParameterName = "Livello",
|
|
Value = level.ToString()
|
|
}
|
|
};
|
|
|
|
switch (reportEnvironment.ReportType)
|
|
{
|
|
case ReportType.Base_Proposta:
|
|
parametri.Add(new Parametro { DbType = DbType.Int32, Direction = ParameterDirection.Input, ParameterName = "ChiaveProposta", Value = reportEnvironment.Proposta.Chiave });
|
|
parametri.Add(new Parametro { DbType = DbType.String, Direction = ParameterDirection.Input, ParameterName = "StatoAdeguatezza", Value = reportEnvironment.Proposta.EsitoAdeguatezza });
|
|
if (reportEnvironment.Proposta.PropostaCBUnica)
|
|
DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "sp_ReportProposal_SectionLogger_Write", parametri);
|
|
else
|
|
DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerConsulenzaBase, "sp_ReportProposal_SectionLogger_Write", parametri);
|
|
break;
|
|
case ReportType.Immobiliare_Diagnosi:
|
|
case ReportType.Immobiliare_DiagnosiNucleo:
|
|
case ReportType.Immobiliare_Finalita:
|
|
case ReportType.Immobiliare_Monitoraggio:
|
|
case ReportType.Immobiliare_MonitoraggioNuclei:
|
|
|
|
var listaimmobiliEnvironment = reportEnvironment.Immobiliare.IdImmobileCatasto ?? reportEnvironment.NucleoImmobiliare.IdImmobileCatasto ?? reportEnvironment.FinalitaImmobiliare.IdImmobileCatasto ;
|
|
var listasezioniEnvironment = reportEnvironment.Immobiliare.IdSezione ?? reportEnvironment.NucleoImmobiliare.IdSezione ?? reportEnvironment.FinalitaImmobiliare.IdSezione;
|
|
|
|
parametri.Add(new Parametro { DbType = DbType.Int64, Direction = ParameterDirection.Input, ParameterName = "ChiaveNucleo", Value = reportEnvironment.NucleoImmobiliare.ChiaveNucleo });
|
|
parametri.Add(new Parametro { DbType = DbType.String, Direction = ParameterDirection.Input, ParameterName = "Lista_IdImmobileCatasto", Value = string.Join(";", listaimmobiliEnvironment) });
|
|
parametri.Add(new Parametro { DbType = DbType.String, Direction = ParameterDirection.Input, ParameterName = "Lista_IdSezione", Value = string.Join(";", listasezioniEnvironment) });
|
|
if(reportEnvironment.Immobiliare.ImmobiliareCEUnica || reportEnvironment.FinalitaImmobiliare.ImmobiliareCEUnica || reportEnvironment.NucleoImmobiliare.ImmobiliareCEUnica)
|
|
DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerReportModeler, "REP_TracciaErrore2", parametri);
|
|
else
|
|
DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerConsulenzaEvoluta, "REP_TracciaErrore2", parametri);
|
|
break;
|
|
case ReportType.Immobiliare_MappaturaPreliminare:
|
|
parametri.Add(new Parametro { DbType = DbType.Int64, Direction = ParameterDirection.Input, ParameterName = "ChiaveNucleo", Value = reportEnvironment.NucleoImmobiliare.ChiaveNucleo });
|
|
parametri.Add(new Parametro { DbType = DbType.String, Direction = ParameterDirection.Input, ParameterName = "Lista_IdImmobileCatasto", Value = string.Join(";", reportEnvironment.MappaturaPreliminare.IdImmobileCatasto) });
|
|
parametri.Add(new Parametro { DbType = DbType.String, Direction = ParameterDirection.Input, ParameterName = "Lista_IdSezione", Value = string.Join(";", reportEnvironment.MappaturaPreliminare.IdSezione) });
|
|
if (reportEnvironment.MappaturaPreliminare.ImmobiliareCEUnica)
|
|
DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerReportModeler, "REP_TracciaErrore2", parametri);
|
|
else
|
|
DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerConsulenzaEvoluta, "REP_TracciaErrore2", parametri);
|
|
break;
|
|
|
|
case ReportType.Unica_Diagnosi:
|
|
case ReportType.Unica_Monitoraggio:
|
|
case ReportType.Unica_Proposta:
|
|
case ReportType.Unica_Nucleo:
|
|
var listaschede = from i in reportEnvironment.ReportStruct.Schede.Select(l => l.Id).ToList() select i;
|
|
parametri.Add(new Parametro { DbType = DbType.Int64, Direction = ParameterDirection.Input, ParameterName = "ChiaveNucleo", Value = reportEnvironment.Cliente.Chiave});
|
|
parametri.Add(new Parametro { DbType = DbType.String, Direction = ParameterDirection.Input, ParameterName = "Lista_IdImmobileCatasto", Value = string.Join(";", "") });
|
|
parametri.Add(new Parametro { DbType = DbType.String, Direction = ParameterDirection.Input, ParameterName = "Lista_IdSezione", Value = string.Join(";", listaschede) });
|
|
|
|
DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerReportModeler, "REP_TracciaErrore2", parametri);
|
|
break;
|
|
|
|
|
|
default:
|
|
throw new Exception("ReportType da gestire: [Consulenza.ReportWriter.Manager.Write()]");
|
|
}
|
|
}
|
|
}
|
|
}
|