Exemplo n.º 1
0
        protected virtual void WriteXmlElements(XmlWriter writer)
        {
            writer.WriteElementString("Title", Title);
            writer.WriteNonEmptyElementString("PositionTitle", PositionTitle);

            if (!BulletPoints.IsNullOrEmpty())
            {
                writer.WriteStartElement("BulletPoints");
                foreach (string bulletPoint in BulletPoints)
                {
                    writer.WriteElementString("BulletPoint", bulletPoint);
                }
                writer.WriteEndElement();     // </BulletPoints>
            }

            writer.WriteNonEmptyElementString("Summary", Summary);
            writer.WriteElementString("Content", Content);
            writer.WriteNonEmptyElementString("EmployerCompanyName", EmployerCompanyName);
            writer.WriteElementString("JobTypes", JobTypes.SerializeEnum());
            writer.WriteNonEmptyElementString("Location", Location);

            if (Salary != null && !Salary.IsEmpty)
            {
                writer.WriteStartElement("Salary");
                WriteXml(writer, Salary);
                writer.WriteEndElement();     // </Salary>
            }

            writer.WriteNonEmptyElementString("PackageDetails", PackageDetails);
            writer.WriteNonEmptyElementString("Postcode", Postcode);
            writer.WriteElementString("ResidencyRequired", XmlConvert.ToString(ResidencyRequired));

            // This is the whole reason for custom XML seialization: ContactDetails class writing an
            // OPTIONAL ContactPerson element.

            if (ContactDetails != null)
            {
                WriteContactPersonXml(writer, ContactDetails);
                WriteContactDetailsXml(writer, ContactDetails);
            }

            writer.WriteStartElement("Industries");
            if (Industries != null)
            {
                foreach (var industry in Industries)
                {
                    writer.WriteStartElement("Industry");
                    writer.WriteString(industry);
                    writer.WriteEndElement(); // </Industry>
                }
            }
            writer.WriteEndElement();     // </Industries>

            writer.WriteNonEmptyElementString("ExternalApplyUrl", ExternalApplyUrl);
            writer.WriteNonEmptyElementString("CssFilename", CssFilename);
        }