Torna al Thread
while (dRead.Read())
{
string codice_strutturaDB = dRead["codice_struttura"].ToString();
string codice_cameraDB = dRead["codice_camera"].ToString();
int pax_minDB = Converti.toInt(dRead["pax_min"].ToString());
int pax_maxDB = Converti.toInt(dRead["pax_max"].ToString());
string letto_aggiuntoDB = dRead["letto_aggiunto"].ToString();
decimal letto_aggiunto_costoDB = Converti.toDecimal(dRead["letto_aggiunto_costo"].ToString());
string cullaDB = dRead["culla"].ToString();
decimal culla_costoDB = Converti.toDecimal(dRead["culla_costo"].ToString());
string livelloDB = dRead["livello"].ToString();
DateTime giornoDB = Converti.toDateTime(dRead["giorno"].ToString());
string modelloDB = dRead["modello"].ToString();
string fk_tariffaDB = dRead["fk_tariffa"].ToString();
int camereDB = Converti.toInt(dRead["camere"].ToString());
decimal costoDB = Converti.toDecimal(dRead["costo"].ToString());
int commissioni_portaleDB = Converti.toInt(dRead["commissioni_portale"].ToString());
if (!elenco.Any(elem => elem.CodiceStruttura == codice_strutturaDB))
{
//Aggiungo una nuova struttura
struttura = new tipoDisponibilita();
struttura.CodiceStruttura = codice_strutturaDB;
elenco.Add(struttura);
}
struttura = elenco.Find(elem => elem.CodiceStruttura == codice_strutturaDB);
//Controlla se la camera è stata già inserita
if (!struttura.Camere.Any(elem => elem.CodiceCamera == codice_cameraDB))
{
//Aggiungo una nuova camera
struttura.Camere.Add(new tipoDisponibilitaCamera()
{
CodiceCamera = codice_cameraDB,
PaxMin = pax_minDB,
PaxMax = pax_maxDB,
LettoAggiunto = (letto_aggiuntoDB == Costanti.statusSI ? true : false),
LettoAggiuntoCosto = letto_aggiunto_costoDB,
Culla = cullaDB,
CullaCosto = culla_costoDB
});
}
camera = struttura.Camere.Find(elem => elem.CodiceCamera == codice_cameraDB);
//Controllo se il livello tariffario è presente
if (!camera.Livelli.Any(elem => elem.Livello == livelloDB))
{
//Aggiungo un nuovo livello tariffario
camera.Livelli.Add(new tipoDisponibilitaLivelloTariffario()
{
Livello = livelloDB
});
}
livello = camera.Livelli.Find(elem => elem.Livello == livelloDB);
//Controllo se il giorno in esame è presente
if (!livello.Giorni.Any(elem => elem.Giorno == giornoDB))
{
//Aggiungo un nuovo giorno
livello.Giorni.Add(new tipoDisponibilitaGiorno()
{
Giorno = giornoDB
});
}
giorno = livello.Giorni.Find(elem => elem.Giorno == giornoDB);
//Controllo se il modello tariffario è presente
if (!giorno.Tariffe.Any(elem => elem.Modello == modelloDB))
{
//Aggiungo un nuovo modello tariffario
giorno.Tariffe.Add(new tipoDisponibilitaTariffa()
{
ID = fk_tariffaDB,
Modello = modelloDB,
Camere = camereDB,
TariffaValue = costoDB,
Markup = Struttura.Impostazioni.getMarkupFromCamera(codice_cameraDB),
Sconto = 0,
applicaRincaro = cerca.prenotazioneAgenzia,
CommissioniStruttura = commissioni_portaleDB
});
}
}