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 Sicht AllePassagiere auf die Klassen Passagier und PassagierMenge.<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_Passagier
 {

  /// <summary>
  /// Mapping für DataRow "zu Fuß programmiert!"
  /// </summary>
  public static Passagier MapRow(System.Data.DataRow dr)
  {
   Passagier p = new Passagier();
   p.Nachname = dr["PE_Name"].ToString();
   p.Vorname = dr["PE_Vorname"].ToString();
   p.PID = Convert.ToInt64(dr["PS_ID"]);
   p.PersonalausweisNr = (dr["PS_PE_Personalausweisnummer"]).ToString();
   return p;
  }

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