public System.Xml.XmlNode Generate(XCRI.Interfaces.XCRICAP11.IPresentation presentation)
 {
     return(this._GetGeneratedNode((w) =>
     {
         this.XmlGenerator.Write(w, presentation);
     }));
 }
示例#2
0
 public void Write
 (
     System.Xml.XmlWriter xmlWriter,
     XCRI.Interfaces.XCRICAP11.IPresentation presentation
 )
 {
     if (presentation == null)
     {
         throw new ArgumentNullException("presentation");
     }
     if ((presentation.CompatibleWith & XCRIProfiles.XCRI_v1_1) == 0)
     {
         return;
     }
     this._WriteStartElement(xmlWriter, "presentation", Configuration.Namespaces.XCRICAP11NamespaceUri);
     this.WriteXCRI11GenericItem(xmlWriter, (XCRI.Interfaces.XCRICAP11.IGeneric)presentation);
     if (presentation.Start != null)
     {
         this.Write(xmlWriter, "start", Configuration.Namespaces.XCRICAP11NamespaceUri, presentation.Start);
     }
     if (presentation.End != null)
     {
         this.Write(xmlWriter, "end", Configuration.Namespaces.XCRICAP11NamespaceUri, presentation.End);
     }
     if (presentation.Duration != null)
     {
         TimeSpan      duration         = presentation.Duration.Value;
         List <string> durationElements = new List <string>();
         int           years            = 0;
         while (duration.Days >= 365)
         {
             years++;
             duration -= TimeSpan.FromDays(365);
         }
         if (years > 0)
         {
             durationElements.Add(String.Format("{0} year{1}", years, years == 1 ? String.Empty : "s"));
         }
         if (duration.Days > 0)
         {
             durationElements.Add(String.Format("{0} day{1}", duration.Days, duration.Days == 1 ? String.Empty : "s"));
         }
         xmlWriter.WriteElementString
         (
             "duration",
             Configuration.Namespaces.XCRICAP11NamespaceUri,
             String.Join(", ", durationElements.ToArray())
         );
     }
     this.Write
     (
         xmlWriter,
         presentation.StudyMode
     );
     this.Write
     (
         xmlWriter,
         presentation.AttendanceMode
     );
     this.Write
     (
         xmlWriter,
         presentation.AttendancePattern
     );
     foreach (string language in presentation.LanguagesOfInstruction)
     {
         if (String.IsNullOrEmpty(language) == false)
         {
             xmlWriter.WriteElementString("languageOfInstruction", Configuration.Namespaces.XCRICAP11NamespaceUri, language);
         }
     }
     foreach (string language in presentation.LanguagesOfAssessment)
     {
         if (String.IsNullOrEmpty(language) == false)
         {
             xmlWriter.WriteElementString("languageOfAssessment", Configuration.Namespaces.XCRICAP11NamespaceUri, language);
         }
     }
     foreach (XCRI.Interfaces.XCRICAP11.IVenue venue in presentation.Venues)
     {
         this.Write(xmlWriter, venue);
     }
     if (String.IsNullOrEmpty(presentation.PlacesAvailable) == false)
     {
         xmlWriter.WriteElementString("placesAvailable", Configuration.Namespaces.XCRICAP11NamespaceUri, presentation.PlacesAvailable);
     }
     if (String.IsNullOrEmpty(presentation.Cost) == false)
     {
         xmlWriter.WriteElementString("cost", Configuration.Namespaces.XCRICAP11NamespaceUri, presentation.Cost);
     }
     if (String.IsNullOrEmpty(presentation.ApplyTo) == false)
     {
         xmlWriter.WriteElementString("applyTo", Configuration.Namespaces.XCRICAP11NamespaceUri, presentation.ApplyTo);
     }
     if (String.IsNullOrEmpty(presentation.EnquireTo) == false)
     {
         xmlWriter.WriteElementString("enquireTo", Configuration.Namespaces.XCRICAP11NamespaceUri, presentation.EnquireTo);
     }
     this._WriteEndElement(xmlWriter);
 }