using System;
using System.Collections.Generic;
using System.Text;
using de.WWWings.PassagierSystem;

namespace de.WWWings.ORM
{

 /// <summary>
 /// Händische Implementierung des Objek-Relationalen Mappings für die Tabelle GF_GebuchteFluege auf die Klassen Buchung und BuchungsMenge.<remarks>
 /// In World Wide Wings wird bewußt keins der am Markt verfügbaren Drittanbieterwerkzeuge für ORM eingesetzt, da erstens die Komplexität des Beispiels nicht weiter erhöht werden soll und zweitens eine Marktbereinigung zu erwarten ist, sobald Microsoft die angekündigten ORM-Werkzeuge auf den Markt bringt.</remarks>
 /// </summary>
 class ORM_Buchung
 {
  /// <summary>
  /// Mapping für DataRow "zu Fuß programmiert!"
  /// </summary>
  public static Buchung MapRow(System.Data.DataRow dr)
  {
   Buchung b = new Buchung(Convert.ToInt64(dr["GF_FL_FlugNr"]), Convert.ToInt64(dr["GF_PS_ID"]));
   b.Buchungscode = Convert.ToInt64(dr["GF_Buchungscode"]);
   return b;
  }

  /// <summary>
  /// Mapping für DataTable
  /// </summary>
  /// <param name="dt">DataTable-Objekt</param>
  /// <returns>Menge von Passagier-Objekten</returns>
  public static de.WWWings.PassagierSystem.BuchungsMenge MapTable(System.Data.DataTable dt)
  {
   BuchungsMenge bb = new BuchungsMenge();
   foreach (System.Data.DataRow dr in dt.Rows)
   {
    Buchung b = MapRow(dr);
    bb.Add(b);
   }
   return bb;
  }
 }
}
