using System.Data;
using Consulenza.ReportCommon;
using System;
namespace Consulenza.ReportWriter.Manager.Integration
{
///
/// Ridefinisce la struttura del report in funzione degli IdImmobileCatasto selezionati dall'utente, duplicandone il capitolo di riferimento.
///
public class DuplicazioneIdImmobileCatasto : IntegrationLayout
{
///
/// Imposta o recupera l'idImmobileCatasto corrente.
///
public string IdImmobileCatasto { get; set; }
///
/// Costruttore
///
///
///
///
public DuplicazioneIdImmobileCatasto(DataTable structure, DataRow row, ReportEnvironment environment)
: base(structure, row, environment)
{
DuplicaCapitolo = true;
if (structure.Columns.Contains("IdImmobileCatasto"))
IdImmobileCatasto = row["IdImmobileCatasto"].ToString();
}
///
/// Ridefinisce la struttura del report in funzione degli IdImmobileCatasto selezionati dall'utente
///
public override DataTable RecalculateStructure()
{
var copyReportStructure = ReportStructure.Clone();
copyReportStructure.Columns.Add("IdImmobileCatasto", typeof(string));
int rowIndex = 0;
var listaIdimmobili = Environment.Immobiliare.IdImmobileCatasto ?? Environment.NucleoImmobiliare.IdImmobileCatasto ?? Environment.MappaturaPreliminare.IdImmobileCatasto ?? Environment.FinalitaImmobiliare.IdImmobileCatasto;
foreach (var item in listaIdimmobili)
{
copyReportStructure.ImportRow(Row);
copyReportStructure.Rows[rowIndex]["IdImmobileCatasto"] = item;
rowIndex++;
}
// Rimuovo la Row corrente
ReportStructure.Rows.Remove(Row);
ReportStructure.AcceptChanges();
// Merge
ReportStructure.Merge(copyReportStructure);
//Ordinamento
var query = from rs in ReportStructure.AsEnumerable()
orderby rs.Field("Ordine")
select rs;
// Ritorno la struttura
return query.AsDataView().ToTable();
}
}
}