68 lines
2.6 KiB
C#
68 lines
2.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Consulenza.ReportWriter.Business;
|
|
using Consulenza.ReportWriter.Business.OBJ_PDF;
|
|
using System.Data;
|
|
using Consulenza.ReportWriter.Business.Entity;
|
|
|
|
namespace Consulenza.ReportWriter.Manager.Section.Immobiliare.Diagnosi.Nucleo
|
|
{
|
|
/// <summary>
|
|
/// Dettaglio immobili con anomalie catastali (id 40)
|
|
/// </summary>
|
|
public class S8 : Immobiliare.Diagnosi.S8
|
|
{
|
|
public S8(EnvironmentFacade environmentFacade, int idSection)
|
|
: base(environmentFacade, idSection)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera i dati necessari alla Section restituendo un DataTable.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
protected override DataTable GetDataTable()
|
|
{
|
|
#region Definizione dei parametri
|
|
|
|
var parametri = new List<Parametro>
|
|
{
|
|
new Parametro
|
|
{
|
|
Direction = ParameterDirection.Input,
|
|
DbType = DbType.Int64,
|
|
ParameterName = "ChiaveNucleo",
|
|
Value = EnvironmentFacade.ReportEnvironment.NucleoImmobiliare.ChiaveNucleo
|
|
}
|
|
};
|
|
|
|
#endregion
|
|
|
|
var dt = EnvironmentFacade.ReportEnvironment.NucleoImmobiliare.ImmobiliareCEUnica ? DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_Nucleo_Immobiliare_S8_DettImmobiliAnomalieCatastali", parametri)
|
|
: DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaEvoluta, "REP_Nucleo_Immobiliare_S8_DettImmobiliAnomalieCatastali", parametri);
|
|
|
|
|
|
//Riaggregazione
|
|
var query = (from p in dt.AsEnumerable()
|
|
group p by p.Field<string>("IdImmobileCatasto") into g
|
|
select new
|
|
{
|
|
IdImmobileCatasto = g.Key,
|
|
Descrizione = g.Select(x => x.Field<string>("Descrizione")).FirstOrDefault(),
|
|
ValoreStimato = g.Select(x => x.Field<decimal>("ValoreStimato")).FirstOrDefault(),
|
|
AnomalieRilevate = string.Join("<BR><BR>", g.Select(x => x.Field<string>("AnomalieRilevate")))
|
|
}).ToList();
|
|
|
|
|
|
var dtResult = dt.Clone();
|
|
|
|
foreach (var item in query)
|
|
dtResult.Rows.Add(item.IdImmobileCatasto, item.Descrizione, item.ValoreStimato, string.Empty, item.AnomalieRilevate);
|
|
|
|
|
|
return dtResult;
|
|
}
|
|
}
|
|
}
|