public override void MergeImport(System.Xml.XmlReader xml)
 {
     base.MergeImport(xml);
     // it may be only an empty shell to stand-in for unreadable data
     if (!CurrentAccessRights.HasReadRights()) return;
     switch (xml.NamespaceURI + "|" + xml.LocalName) {
     case "Zetbox.App.Base|ByDay":
         this._ByDay = XmlStreamer.ReadString(xml);
         break;
     case "Zetbox.App.Base|ByHour":
         this._ByHour = XmlStreamer.ReadString(xml);
         break;
     case "Zetbox.App.Base|ByMinute":
         this._ByMinute = XmlStreamer.ReadString(xml);
         break;
     case "Zetbox.App.Base|ByMonth":
         this._ByMonth = XmlStreamer.ReadString(xml);
         break;
     case "Zetbox.App.Base|ByMonthDay":
         this._ByMonthDay = XmlStreamer.ReadString(xml);
         break;
     case "Zetbox.App.Base|BySecond":
         this._BySecond = XmlStreamer.ReadString(xml);
         break;
     case "Zetbox.App.Base|BySetPos":
         this._BySetPos = XmlStreamer.ReadString(xml);
         break;
     case "Zetbox.App.Base|ByWeekNumber":
         this._ByWeekNumber = XmlStreamer.ReadString(xml);
         break;
     case "Zetbox.App.Base|ByYearDay":
         this._ByYearDay = XmlStreamer.ReadString(xml);
         break;
     case "Zetbox.App.Base|Count":
         this._Count = XmlStreamer.ReadNullableInt32(xml);
         break;
     case "Zetbox.App.Base|Frequency":
         this._Frequency = (Zetbox.App.Base.Frequency?)XmlStreamer.ReadNullableInt32(xml);
        break;
     case "Zetbox.App.Base|Interval":
         this._Interval = XmlStreamer.ReadNullableInt32(xml);
         break;
     case "Zetbox.App.Base|Until":
         this._Until = XmlStreamer.ReadNullableDateTime(xml);
         break;
     case "Zetbox.App.Base|WeekStart":
         this._WeekStart = (Zetbox.App.Base.DayOfWeek?)XmlStreamer.ReadNullableInt32(xml);
        break;
     }
 }
 public override IEnumerable<IPersistenceObject> FromStream(Zetbox.API.ZetboxStreamReader binStream)
 {
     var baseResult = base.FromStream(binStream);
     var result = new List<IPersistenceObject>();
     // it may be only an empty shell to stand-in for unreadable data
     if (CurrentAccessRights != Zetbox.API.AccessRights.None) {
     this._ByDay = binStream.ReadString();
     this._ByHour = binStream.ReadString();
     this._ByMinute = binStream.ReadString();
     this._ByMonth = binStream.ReadString();
     this._ByMonthDay = binStream.ReadString();
     this._BySecond = binStream.ReadString();
     this._BySetPos = binStream.ReadString();
     this._ByWeekNumber = binStream.ReadString();
     this._ByYearDay = binStream.ReadString();
     this._Count = binStream.ReadNullableInt32();
     this._Frequency = (Zetbox.App.Base.Frequency?)binStream.ReadNullableInt32();
     this._Interval = binStream.ReadNullableInt32();
     this._Until = binStream.ReadNullableDateTime();
     this._WeekStart = (Zetbox.App.Base.DayOfWeek?)binStream.ReadNullableInt32();
     } // if (CurrentAccessRights != Zetbox.API.AccessRights.None)
     return baseResult == null
         ? result.Count == 0
             ? null
             : result
         : baseResult.Concat(result);
 }