public System.Xml.XmlNode Generate(XCRI.Interfaces.XCRICAP11.IPresentation presentation) { return(this._GetGeneratedNode((w) => { this.XmlGenerator.Write(w, presentation); })); }
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); }