public void Save(XmlWriter writer)
{
if (Utilities.IsPersistable(this.valueString) ||
Utilities.IsPersistable(this.startTime) ||
Utilities.IsPersistable(this.endTime))
{
writer.WriteStartElement(BaseNameTable.gDataPrefix, XmlName, BaseNameTable.gNamespace);
if (startTime != new DateTime(1, 1, 1))
{
string date = this.fAllDay ? Utilities.LocalDateInUTC(this.startTime)
: Utilities.LocalDateTimeInUTC(this.startTime);
writer.WriteAttributeString(GDataParserNameTable.XmlAttributeStartTime, date);
}
else
{
throw new ClientFeedException("g:when/@startTime is required.");
}
if (endTime != new DateTime(1, 1, 1))
{
string date = this.fAllDay ? Utilities.LocalDateInUTC(this.endTime)
: Utilities.LocalDateTimeInUTC(this.endTime);
writer.WriteAttributeString(GDataParserNameTable.XmlAttributeEndTime, date);
}
if (Utilities.IsPersistable(this.valueString))
{
writer.WriteAttributeString(GDataParserNameTable.XmlAttributeValueString, this.valueString);
}
if (this.reminders != null)
{
foreach (Reminder r in this.Reminders)
{
r.Save(writer);
}
}
writer.WriteEndElement();
}
}
#endregion