103 lines
5.4 KiB
C#
103 lines
5.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Data.SqlClient;
|
|
using System.Xml;
|
|
using XMLExtractor;
|
|
|
|
namespace XMLExtractor
|
|
{
|
|
public class Section {
|
|
public string id { get; set; }
|
|
public int idCapitolo { get; set; }
|
|
public int idSezione { get; set; }
|
|
|
|
public static void writeSection(XmlNode attribute, List<string> tagList, string nextTag, Data data)
|
|
{
|
|
//ReadXML.idPagina = 1;
|
|
foreach (XmlNode attr in attribute.ChildNodes)
|
|
if (!tagList.Contains(attr.Name.ToString()))
|
|
{
|
|
Section section = new Section();
|
|
section.id = attr.InnerText;
|
|
section.idCapitolo = ReadXML.idCapitolo;
|
|
section.idSezione = ReadXML.idSezione;
|
|
data.sectionList.Add(section);
|
|
}
|
|
else
|
|
ReadXML.extractTag(attr, "pagina");
|
|
ReadXML.idSezione++;
|
|
}
|
|
|
|
public void writeDB(SqlConnection conn, Data data, TemplateStrutturaModelli templateStrutturaModelli) {
|
|
// Le sezioni di Immobiliare Monitoraggio su DB partono da 201 (compreso)
|
|
// I dati sono estratti dallXML con indice che parte da 1
|
|
int rowsUpdatedInserted = 0;
|
|
//conn.Open();
|
|
SqlCommand updInsCommand;
|
|
SqlCommand cmdCount = new SqlCommand("SELECT count(*) from Sezioni WHERE ID = @ID", conn);
|
|
cmdCount.Parameters.AddWithValue("@ID", Utility.CHIAVE_LAYOUT_SECTION + 200);
|
|
int count = (int)cmdCount.ExecuteScalar();
|
|
|
|
// Se esiste, faccio l'update, altrimenti creo una nuova riga
|
|
if (count > 0)
|
|
updInsCommand = new SqlCommand("UPDATE Sezioni SET Descrizione = @descrizione WHERE ID = @ID", conn);
|
|
else
|
|
updInsCommand = new SqlCommand("INSERT into Sezioni (ID, Descrizione) VALUES (@ID, @Descrizione)", conn);
|
|
|
|
string Descrizione = "S" + Utility.CHIAVE_LAYOUT_SECTION/*this.idCapitolo*/ + "." + this.id + ".MonitoraggioImmobiliare";
|
|
updInsCommand.Parameters.AddWithValue("@ID", Utility.CHIAVE_LAYOUT_SECTION + 200);
|
|
updInsCommand.Parameters.AddWithValue("@Descrizione", Descrizione);
|
|
rowsUpdatedInserted = updInsCommand.ExecuteNonQuery();
|
|
//if (rowsUpdatedInserted != 0)
|
|
// this.idSezione = Utility.CHIAVE_LAYOUT_SECTION + 200;
|
|
templateStrutturaModelli.idSezione = Utility.CHIAVE_LAYOUT_SECTION + 200;
|
|
Chapter chapter = (Chapter) data.chapterList.AsEnumerable().FirstOrDefault(x => x.idCapitolo == this.idCapitolo);
|
|
if (chapter != null)
|
|
{
|
|
//chapter.idCapitolo = this.idSezione;
|
|
chapter.writeDB(conn, templateStrutturaModelli);
|
|
}
|
|
|
|
if (rowsUpdatedInserted > 0)
|
|
writeChiaveLayoutDB(conn, data, templateStrutturaModelli);
|
|
|
|
Utility.CHIAVE_LAYOUT_SECTION++;
|
|
|
|
}
|
|
|
|
// Scrive in ClassiLayout le chiavi layout dei Capitoli
|
|
public void writeChiaveLayoutDB(SqlConnection conn, Data data, TemplateStrutturaModelli templateStrutturaModelli)
|
|
{
|
|
Chapter chapter = (Chapter) data.chapterList.AsEnumerable().FirstOrDefault(x => x.idCapitolo == this.idCapitolo);
|
|
SqlCommand updInsCommand;
|
|
SqlCommand cmdCount = new SqlCommand("SELECT count(*) from ClassiLayout WHERE IdChiaveLayout = @idChiaveLayout", conn);
|
|
cmdCount.Parameters.AddWithValue("@idChiaveLayout", Utility.CHIAVE_LAYOUT_SECTION + 3500);
|
|
|
|
// INSERT STATEMENT
|
|
updInsCommand = new SqlCommand("INSERT into ClassiLayout (IdChiaveLayout, Classe, Namespace, Descrizione) VALUES (@idChiaveLayout, "
|
|
+ "@classe, @NameSpace, @Descrizione)", conn);
|
|
|
|
// idChiaveLayout parte da 526 => 'Immobiliare Monitoraggio'
|
|
//updInsCommand.Parameters.AddWithValue("@ID", Convert.ToInt32(new SqlCommand("SELECT MAX(ID) FROM Report", conn).ExecuteScalar()));
|
|
updInsCommand.Parameters.AddWithValue("@IdChiaveLayout", Utility.CHIAVE_LAYOUT_SECTION + 3500);
|
|
if (!chapter.titoloCapitolo.Contains("Indice"))
|
|
{
|
|
updInsCommand.Parameters.AddWithValue("@classe", "S" + Utility.CHIAVE_LAYOUT_SECTION);
|
|
updInsCommand.Parameters.AddWithValue("@NameSpace", "Consulenza.ReportWriter.Manager.Section.Immobiliare.Monitoraggio");
|
|
updInsCommand.Parameters.AddWithValue("@Descrizione", "S" + Utility.CHIAVE_LAYOUT_SECTION + "." + chapter.titoloCapitolo + " - Immobiliare Monitoraggio");
|
|
}
|
|
else
|
|
{
|
|
updInsCommand.Parameters.AddWithValue("@classe", "S" + chapter.idCapitolo);
|
|
updInsCommand.Parameters.AddWithValue("@NameSpace", "Consulenza.ReportWriter.Manager.Section.Immobiliare.Monitoraggio");
|
|
updInsCommand.Parameters.AddWithValue("@Descrizione", "S" + chapter.idCapitolo + "." + chapter.titoloCapitolo + " - Immobiliare Monitoraggio");
|
|
}
|
|
int rowsUpdatedInserted = updInsCommand.ExecuteNonQuery();
|
|
templateStrutturaModelli.sezioneChiaveLayout = Utility.CHIAVE_LAYOUT_SECTION + 3500;
|
|
}
|
|
|
|
}
|
|
}
|