From e02c2d3607626dc910504a65f13d00b82be04a04 Mon Sep 17 00:00:00 2001 From: Christian Fiedler Date: Wed, 4 Sep 2013 18:59:03 +0200 Subject: [PATCH] adding classes to dict --- .../CampusAppWP8/Utility/ICSClasses.cs | 324 ++++++++++++++++- .../CampusAppWP8/Utility/ICSObjectConst.cs | 327 +++++++++--------- 2 files changed, 487 insertions(+), 164 deletions(-) diff --git a/CampusAppWP8/CampusAppWP8/Utility/ICSClasses.cs b/CampusAppWP8/CampusAppWP8/Utility/ICSClasses.cs index 5bfa6b69..5cd22607 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/ICSClasses.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/ICSClasses.cs @@ -35,6 +35,318 @@ namespace CampusAppWP8.Utility public abstract string GetString(); } + // + public class Begin : Interface + { + // ??? + public static readonly string Name = ICSTag.BEGIN; + public static readonly List> PParams + = new List>(); + public static readonly List PValues + = new List(new string[] { + ICSTag.VCALENDAR, + ICSTag.VEVENT, + ICSTag.VTODO, + ICSTag.VJOURNAL, + ICSTag.VFREEBUSY, + ICSTag.VTIMEZONE, + ICSTag.STANDARD, + ICSTag.DAYLIGHT, + ICSTag.VALARM + }); + + private string value = string.Empty; + + public Begin() + { + } + + public override void Set(string valueStr, string[] paramStrList) + { + if (paramStrList != null && paramStrList.Count() > 0) + { + throw new NotSupportedException("there is no param supported"); + } + + if (PValues.IndexOf(valueStr) >= 0) + { + this.value = valueStr; + } + else + { + throw new NotSupportedException("value " + valueStr + ") is not suppiorted"); + } + } + + public override string GetString() + { + string retValue = string.Empty; + + retValue += Name + ":" + this.value; + + return retValue; + } + + public string Value + { + get + { + return this.value; + } + set + { + if (PValues.IndexOf(value) >= 0) + { + this.value = value; + } + else + { + throw new NotSupportedException("value (" + value + ") is not supported"); + } + } + } + } + + public class End : Begin // same + { + // ??? + public static readonly string Name = ICSTag.END; + public static readonly List> PParams + = new List>(); + public static readonly List PValues + = new List(new string[] { + ICSTag.VCALENDAR, + ICSTag.VEVENT, + ICSTag.VTODO, + ICSTag.VJOURNAL, + ICSTag.VFREEBUSY, + ICSTag.VTIMEZONE, + ICSTag.STANDARD, + ICSTag.DAYLIGHT, + ICSTag.VALARM + }); + + public End() + : base() + { + } + } + + public class Version : Interface + { + // 3.7.4. + public static readonly string Name = ICSTag.VERSION; + public static readonly List> PParams + = new List>(); + + private float maxVer = -1.0f; // also used for single val + private float minVer = -1.0f; + + public Version() + { + } + + public override void Set(string valueStr, string[] paramStrList) + { + if (paramStrList != null && paramStrList.Count() > 0) + { + throw new NotSupportedException("there is no param supported"); + } + + string[] v = valueStr.Split(';'); + + if (v.Count() > 2 || v.Count() == 0) + { + throw new NotSupportedException("unsupported value (" + valueStr + ")"); + } + else if (v.Count() == 2) + { + this.minVer = float.Parse(v[0]); + this.maxVer = float.Parse(v[1]); + } + else + { + this.maxVer = float.Parse(v[0]); + } + } + + public override string GetString() + { + string retValue = string.Empty; + + retValue += Name + ":"; + + if (this.minVer >= 0.0f) + { + retValue += this.minVer.ToString() + ";"; + } + + retValue += this.maxVer.ToString(); + + return retValue; + } + + public float Value + { + get + { + return this.maxVer; + } + set + { + if (value >= 0.0f) + { + this.maxVer = value; + this.minVer = -1.0f; + } + else + { + throw new NotSupportedException("value (" + value + ") is not supported"); + } + } + } + + public float MinVersion + { + get + { + return this.minVer; + } + set + { + if (value >= 0.0f) + { + this.minVer = value; + } + else + { + throw new NotSupportedException("value (" + value + ") is not supported"); + } + } + } + + public float MaxVersion + { + get + { + return this.Value; + } + set + { + this.Value = value; + } + } + } + + public class ProductID : Interface + { + // 3.7.3. + public static readonly string Name = ICSTag.PRODUCT_ID; + public static readonly List> PParams + = new List>(); + + private string value = string.Empty; + + public ProductID() + { + } + + public override void Set(string valueStr, string[] paramStrList) + { + if (paramStrList != null && paramStrList.Count() > 0) + { + throw new NotSupportedException("there is no param supported"); + } + + this.value = valueStr; + } + + public override string GetString() + { + string retValue = string.Empty; + + retValue += Name + ":" + this.value; + + return retValue; + } + + public string Value + { + get + { + return this.value; + } + set + { + this.value = value; + } + } + } + + public class CalendarScale : Interface + { + // 3.7.1. + public static readonly string Name = ICSTag.CAL_SCALE; + public static readonly List> PParams + = new List>(); + public static readonly List PValues + = new List(new string[] { + ICSValue.GREGORIAN + }); + + private string value = string.Empty; + + public CalendarScale() + { + } + + public override void Set(string valueStr, string[] paramStrList) + { + if (paramStrList != null && paramStrList.Count() > 0) + { + throw new NotSupportedException("there is no param supported"); + } + + if (PValues.IndexOf(valueStr) >= 0) + { + this.value = valueStr; + } + else + { + throw new NotSupportedException("value " + valueStr + ") is not suppiorted"); + } + } + + public override string GetString() + { + string retValue = string.Empty; + + retValue += Name + ":" + this.value; + + return retValue; + } + + public string Value + { + get + { + return this.value; + } + set + { + if (PValues.IndexOf(value) >= 0) + { + this.value = value; + } + else + { + throw new NotSupportedException("value (" + value + ") is not supported"); + } + } + } + } + // + public class Attachment : Interface { // 3.8.1.1. @@ -102,7 +414,7 @@ namespace CampusAppWP8.Utility { string retValue = string.Empty; - retValue += ICSTag.ATTACHMENT; + retValue += Name; if (this.formatType.Equals(string.Empty) == false) { @@ -239,7 +551,7 @@ namespace CampusAppWP8.Utility { string retValue = string.Empty; - retValue += ICSTag.CATEGORIES; + retValue += Name; if (this.languageType.Equals(string.Empty) == false) { @@ -409,7 +721,7 @@ namespace CampusAppWP8.Utility { string retValue = string.Empty; - retValue += ICSTag.COMMENT; + retValue += Name; if (this.altrep.Equals(string.Empty) == false) { @@ -519,7 +831,7 @@ namespace CampusAppWP8.Utility { string retValue = string.Empty; - retValue += ICSTag.GEO; + retValue += Name; if (this.value == null) { @@ -593,7 +905,7 @@ namespace CampusAppWP8.Utility { string retValue = string.Empty; - retValue += ICSTag.PERCENT; + retValue += Name; if (this.value < 0) { @@ -669,7 +981,7 @@ namespace CampusAppWP8.Utility { string retValue = string.Empty; - retValue += ICSTag.PERCENT; + retValue += Name; if (this.value < 0 || this.value > 9) { diff --git a/CampusAppWP8/CampusAppWP8/Utility/ICSObjectConst.cs b/CampusAppWP8/CampusAppWP8/Utility/ICSObjectConst.cs index 1b876439..ebcc2359 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/ICSObjectConst.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/ICSObjectConst.cs @@ -7,6 +7,7 @@ //----------------------------------------------------------------------------- namespace CampusAppWP8.Utility { + using System; using System.Collections.Generic; public class ICSDict @@ -142,18 +143,13 @@ namespace CampusAppWP8.Utility public class ICSElemDesc : ICSDesc { - private List param = null; private List value = null; + private Type objType; - public ICSElemDesc(string name, ICSParamDesc[] paramList, ICSValueDesc[] valueList) : base() + public ICSElemDesc(string name, Type t, ICSValueDesc[] valueList) : base() { this.Name = name; - - if ((paramList != null) && (paramList.Length > 0)) - { - this.param = new List(); - this.param.AddRange(paramList); - } + this.objType = t; if ((valueList != null) && (valueList.Length > 0)) { @@ -161,7 +157,7 @@ namespace CampusAppWP8.Utility this.value.AddRange(valueList); } } - + /* public List ParamList { get @@ -173,7 +169,7 @@ namespace CampusAppWP8.Utility this.param = value; } } - + */ public List ValueList { get @@ -186,11 +182,12 @@ namespace CampusAppWP8.Utility } } + /* public bool HasParams() { return ((this.param != null) && (this.param.Count > 0)); } - + */ public bool HasValues() { return ((this.value != null) && (this.value.Count > 0)); @@ -213,205 +210,219 @@ namespace CampusAppWP8.Utility return retValue; } + + public object CreateObj() + { + return Activator.CreateInstance(this.objType); + } + + public object CreateObj(string valueStr, string paramStr) + { + object retValue = this.CreateObj(); + + (retValue as ICSClasses.Interface).Set(valueStr, paramStr); + + return retValue; + } } public static ICSValueDesc Root = new ICSValueDesc("ROOT", new ICSElemDesc[] { - new ICSElemDesc(ICSTag.BEGIN, null, new ICSValueDesc[] { + new ICSElemDesc(ICSTag.BEGIN, typeof(ICSClasses.Begin), new ICSValueDesc[] { new ICSValueDesc(ICSTag.VCALENDAR, new ICSElemDesc[] { - new ICSElemDesc(ICSTag.VERSION, null, null), - new ICSElemDesc(ICSTag.PRODUCT_ID, null, null), - new ICSElemDesc(ICSTag.CAL_SCALE, null, new ICSValueDesc[] { + new ICSElemDesc(ICSTag.VERSION, typeof(ICSClasses.Version), null), + new ICSElemDesc(ICSTag.PRODUCT_ID, typeof(ICSClasses.ProductID), null), + new ICSElemDesc(ICSTag.CAL_SCALE, typeof(ICSClasses.CalendarScale), new ICSValueDesc[] { new ICSValueDesc(ICSValue.GREGORIAN, null) }), - new ICSElemDesc(ICSTag.METHOD, null, null), - new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] { + new ICSElemDesc(ICSTag.METHOD, typeof(), null), + new ICSElemDesc(ICSTag.END, typeof(ICSClasses.End), new ICSValueDesc[] { new ICSValueDesc(ICSTag.VCALENDAR, null) }), - new ICSElemDesc(ICSTag.BEGIN, null, new ICSValueDesc[] { + new ICSElemDesc(ICSTag.BEGIN, typeof(ICSClasses.Begin), new ICSValueDesc[] { new ICSValueDesc(ICSTag.VEVENT, new ICSElemDesc[] { - new ICSElemDesc(ICSTag.DT_STAMP, null, null), - new ICSElemDesc(ICSTag.UNIQUE_ID, null, null), - new ICSElemDesc(ICSTag.DT_START, null, null), - new ICSElemDesc(ICSTag.ACCESS_CLASS, null, null), - new ICSElemDesc(ICSTag.DT_CREATED, null, null), - new ICSElemDesc(ICSTag.DESCRIPTION, null, null), - new ICSElemDesc(ICSTag.GEO, null, null), - new ICSElemDesc(ICSTag.DT_MODIFIED, null, null), - new ICSElemDesc(ICSTag.LOCATION, null, null), - new ICSElemDesc(ICSTag.ORGANIZER, null, null), - new ICSElemDesc(ICSTag.PRIORITY, null, null), - new ICSElemDesc(ICSTag.SEQ, null, null), - new ICSElemDesc(ICSTag.STATUS, null, null), - new ICSElemDesc(ICSTag.SUMMARY, null, null), - new ICSElemDesc(ICSTag.TRANSP, null, null), - new ICSElemDesc(ICSTag.URL, null, null), - new ICSElemDesc(ICSTag.RECURRENCE_ID, null, null), - new ICSElemDesc(ICSTag.RRULE, null, null), - new ICSElemDesc(ICSTag.DT_END, null, null), - new ICSElemDesc(ICSTag.DURATION, null, null), - new ICSElemDesc(ICSTag.ATTACHMENT, null, null), - new ICSElemDesc(ICSTag.ATTENDEE, null, null), - new ICSElemDesc(ICSTag.CATEGORIES, null, null), - new ICSElemDesc(ICSTag.COMMENT, null, null), - new ICSElemDesc(ICSTag.CONTACT, null, null), - new ICSElemDesc(ICSTag.EXDATE, null, null), - new ICSElemDesc(ICSTag.RSTATUS, null, null), - new ICSElemDesc(ICSTag.RELATED, null, null), - new ICSElemDesc(ICSTag.RESOURCES, null, null), - new ICSElemDesc(ICSTag.RDATE, null, null), - new ICSElemDesc(ICSTag.BEGIN, null, new ICSValueDesc[] { + new ICSElemDesc(ICSTag.DT_STAMP, typeof(ICSClasses.DTStamp), null), + new ICSElemDesc(ICSTag.UNIQUE_ID, typeof(ICSClasses.UniqueID), null), + new ICSElemDesc(ICSTag.DT_START, typeof(ICSClasses.DTStart), null), + new ICSElemDesc(ICSTag.ACCESS_CLASS, typeof(ICSClasses.AccessClass), null), + new ICSElemDesc(ICSTag.DT_CREATED, typeof(ICSClasses.DTCreated), null), + new ICSElemDesc(ICSTag.DESCRIPTION, typeof(ICSClasses.Description), null), + new ICSElemDesc(ICSTag.GEO, typeof(ICSClasses.Geo), null), + new ICSElemDesc(ICSTag.DT_MODIFIED, typeof(ICSClasses.LastModified), null), + new ICSElemDesc(ICSTag.LOCATION, typeof(ICSClasses.Location), null), + new ICSElemDesc(ICSTag.ORGANIZER, typeof(ICSClasses.Organizer), null), + new ICSElemDesc(ICSTag.PRIORITY, typeof(ICSClasses.Priority), null), + new ICSElemDesc(ICSTag.SEQ, typeof(ICSClasses.SequenceNumber), null), + new ICSElemDesc(ICSTag.STATUS, typeof(ICSClasses.Status), null), + new ICSElemDesc(ICSTag.SUMMARY, typeof(ICSClasses.Summary), null), + new ICSElemDesc(ICSTag.TRANSP, typeof(ICSClasses.TimeTransparency), null), + new ICSElemDesc(ICSTag.URL, typeof(ICSClasses.Url), null), + new ICSElemDesc(ICSTag.RECURRENCE_ID, typeof(ICSClasses.RecurrenceID), null), + new ICSElemDesc(ICSTag.RRULE, typeof(ICSClasses.RecurrenceRule), null), + new ICSElemDesc(ICSTag.DT_END, typeof(ICSClasses.DTEnd), null), + new ICSElemDesc(ICSTag.DURATION, typeof(ICSClasses.Duration), null), + new ICSElemDesc(ICSTag.ATTACHMENT, typeof(ICSClasses.Attachment), null), + new ICSElemDesc(ICSTag.ATTENDEE, typeof(ICSClasses.Attendee), null), + new ICSElemDesc(ICSTag.CATEGORIES, typeof(ICSClasses.Categories), null), + new ICSElemDesc(ICSTag.COMMENT, typeof(ICSClasses.Comment), null), + new ICSElemDesc(ICSTag.CONTACT, typeof(ICSClasses.Contact), null), + new ICSElemDesc(ICSTag.EXDATE, typeof(ICSClasses.DTException), null), + new ICSElemDesc(ICSTag.RSTATUS, typeof(ICSClasses.RequestStatus), null), + new ICSElemDesc(ICSTag.RELATED, typeof(ICSClasses.RelatedTo), null), + new ICSElemDesc(ICSTag.RESOURCES, typeof(ICSClasses.Resources), null), + new ICSElemDesc(ICSTag.RDATE, typeof(ICSClasses.DTRecurrence), null), + new ICSElemDesc(ICSTag.BEGIN, typeof(ICSClasses.Begin), new ICSValueDesc[] { new ICSValueDesc(ICSTag.VALARM, new ICSElemDesc[] { - new ICSElemDesc(ICSTag.ACTION, null, new ICSValueDesc[] { // audio, display, email + new ICSElemDesc(ICSTag.ACTION, typeof(ICSClasses.Action), new ICSValueDesc[] { // audio, display, email new ICSValueDesc(ICSValue.AUDIO, null), new ICSValueDesc(ICSValue.DISP, null), new ICSValueDesc(ICSValue.EMAIL, null) }), - new ICSElemDesc(ICSTag.TRIGGER, null, null), // audio, display, email - new ICSElemDesc(ICSTag.DURATION, null, null), // audio, display, email - new ICSElemDesc(ICSTag.REPEAT, null, null), // audio, display, email - new ICSElemDesc(ICSTag.ATTACHMENT, null, null), // audio, email - new ICSElemDesc(ICSTag.DESCRIPTION, null, null),// display, eamil - new ICSElemDesc(ICSTag.SUMMARY, null, null), // email - new ICSElemDesc(ICSTag.ATTENDEE, null, null), // email - new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] { // audio, display, email + new ICSElemDesc(ICSTag.TRIGGER, typeof(ICSClasses.Trigger), null), // audio, display, email + new ICSElemDesc(ICSTag.DURATION, typeof(ICSClasses.Duration), null), // audio, display, email + new ICSElemDesc(ICSTag.REPEAT, typeof(ICSClasses.RepeatCount), null), // audio, display, email + new ICSElemDesc(ICSTag.ATTACHMENT, typeof(ICSClasses.Attachment), null), // audio, email + new ICSElemDesc(ICSTag.DESCRIPTION, typeof(ICSClasses.Description), null),// display, eamil + new ICSElemDesc(ICSTag.SUMMARY, typeof(ICSClasses.Summary), null), // email + new ICSElemDesc(ICSTag.ATTENDEE, typeof(ICSClasses.Attendee), null), // email + new ICSElemDesc(ICSTag.END, typeof(ICSClasses.End), new ICSValueDesc[] { // audio, display, email new ICSValueDesc(ICSTag.VALARM, null) }) }) }), - new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] { + new ICSElemDesc(ICSTag.END, typeof(ICSClasses.End), new ICSValueDesc[] { new ICSValueDesc(ICSTag.VEVENT, null) }) }), new ICSValueDesc(ICSTag.VTODO, new ICSElemDesc[] { - new ICSElemDesc(ICSTag.DT_STAMP, null, null), - new ICSElemDesc(ICSTag.UNIQUE_ID, null, null), - new ICSElemDesc(ICSTag.ACCESS_CLASS, null, null), - new ICSElemDesc(ICSTag.COMPLETED, null, null), - new ICSElemDesc(ICSTag.DT_CREATED, null, null), - new ICSElemDesc(ICSTag.DESCRIPTION, null, null), - new ICSElemDesc(ICSTag.DT_START, null, null), - new ICSElemDesc(ICSTag.GEO, null, null), - new ICSElemDesc(ICSTag.DT_MODIFIED, null, null), - new ICSElemDesc(ICSTag.LOCATION, null, null), - new ICSElemDesc(ICSTag.ORGANIZER, null, null), - new ICSElemDesc(ICSTag.PERCENT, null, null), - new ICSElemDesc(ICSTag.PRIORITY, null, null), - new ICSElemDesc(ICSTag.RECURRENCE_ID, null, null), - new ICSElemDesc(ICSTag.SEQ, null, null), - new ICSElemDesc(ICSTag.STATUS, null, null), - new ICSElemDesc(ICSTag.SUMMARY, null, null), - new ICSElemDesc(ICSTag.URL, null, null), - new ICSElemDesc(ICSTag.RRULE, null, null), - new ICSElemDesc(ICSTag.DUE, null, null), - new ICSElemDesc(ICSTag.DURATION, null, null), - new ICSElemDesc(ICSTag.ATTACHMENT, null, null), - new ICSElemDesc(ICSTag.ATTENDEE, null, null), - new ICSElemDesc(ICSTag.CATEGORIES, null, null), - new ICSElemDesc(ICSTag.COMMENT, null, null), - new ICSElemDesc(ICSTag.CONTACT, null, null), - new ICSElemDesc(ICSTag.EXDATE, null, null), - new ICSElemDesc(ICSTag.RSTATUS, null, null), - new ICSElemDesc(ICSTag.RELATED, null, null), - new ICSElemDesc(ICSTag.RESOURCES, null, null), - new ICSElemDesc(ICSTag.RDATE, null, null), - new ICSElemDesc(ICSTag.BEGIN, null, new ICSValueDesc[] { + new ICSElemDesc(ICSTag.DT_STAMP, typeof(ICSClasses.DTStamp), null), + new ICSElemDesc(ICSTag.UNIQUE_ID, typeof(ICSClasses.UniqueID), null), + new ICSElemDesc(ICSTag.ACCESS_CLASS, typeof(ICSClasses.AccessClass), null), + new ICSElemDesc(ICSTag.COMPLETED, typeof(ICSClasses.DTCompleted), null), + new ICSElemDesc(ICSTag.DT_CREATED, typeof(ICSClasses.DTCreated), null), + new ICSElemDesc(ICSTag.DESCRIPTION, typeof(ICSClasses.Description), null), + new ICSElemDesc(ICSTag.DT_START, typeof(ICSClasses.DTStart), null), + new ICSElemDesc(ICSTag.GEO, typeof(ICSClasses.Geo), null), + new ICSElemDesc(ICSTag.DT_MODIFIED, typeof(ICSClasses.LastModified), null), + new ICSElemDesc(ICSTag.LOCATION, typeof(ICSClasses.Location), null), + new ICSElemDesc(ICSTag.ORGANIZER, typeof(ICSClasses.Organizer), null), + new ICSElemDesc(ICSTag.PERCENT, typeof(ICSClasses.PercentComplete), null), + new ICSElemDesc(ICSTag.PRIORITY, typeof(ICSClasses.Priority), null), + new ICSElemDesc(ICSTag.RECURRENCE_ID, typeof(ICSClasses.RecurrenceID), null), + new ICSElemDesc(ICSTag.SEQ, typeof(ICSClasses.SequenceNumber), null), + new ICSElemDesc(ICSTag.STATUS, typeof(ICSClasses.Status), null), + new ICSElemDesc(ICSTag.SUMMARY, typeof(ICSClasses.Summary), null), + new ICSElemDesc(ICSTag.URL, typeof(ICSClasses.Url), null), + new ICSElemDesc(ICSTag.RRULE, typeof(ICSClasses.RecurrenceRule), null), + new ICSElemDesc(ICSTag.DUE, typeof(ICSClasses.DTDue), null), + new ICSElemDesc(ICSTag.DURATION, typeof(ICSClasses.Duration), null), + new ICSElemDesc(ICSTag.ATTACHMENT, typeof(ICSClasses.Attachment), null), + new ICSElemDesc(ICSTag.ATTENDEE, typeof(ICSClasses.Attendee), null), + new ICSElemDesc(ICSTag.CATEGORIES, typeof(ICSClasses.Categories), null), + new ICSElemDesc(ICSTag.COMMENT, typeof(ICSClasses.Comment), null), + new ICSElemDesc(ICSTag.CONTACT, typeof(ICSClasses.Contact), null), + new ICSElemDesc(ICSTag.EXDATE, typeof(ICSClasses.DTException), null), + new ICSElemDesc(ICSTag.RSTATUS, typeof(ICSClasses.RequestStatus), null), + new ICSElemDesc(ICSTag.RELATED, typeof(ICSClasses.RelatedTo), null), + new ICSElemDesc(ICSTag.RESOURCES, typeof(ICSClasses.Resources), null), + new ICSElemDesc(ICSTag.RDATE, typeof(ICSClasses.DTRecurrence), null), + new ICSElemDesc(ICSTag.BEGIN, typeof(ICSClasses.Begin), new ICSValueDesc[] { new ICSValueDesc(ICSTag.VALARM, new ICSElemDesc[] { - new ICSElemDesc(ICSTag.ACTION, null, new ICSValueDesc[] { // audio, display, email + new ICSElemDesc(ICSTag.ACTION, typeof(ICSClasses.Action), new ICSValueDesc[] { // audio, display, email new ICSValueDesc(ICSValue.AUDIO, null), new ICSValueDesc(ICSValue.DISP, null), new ICSValueDesc(ICSValue.EMAIL, null) }), - new ICSElemDesc(ICSTag.TRIGGER, null, null), // audio, display, email - new ICSElemDesc(ICSTag.DURATION, null, null), // audio, display, email - new ICSElemDesc(ICSTag.REPEAT, null, null), // audio, display, email - new ICSElemDesc(ICSTag.ATTACHMENT, null, null), // audio, email - new ICSElemDesc(ICSTag.DESCRIPTION, null, null),// display, eamil - new ICSElemDesc(ICSTag.SUMMARY, null, null), // email - new ICSElemDesc(ICSTag.ATTENDEE, null, null), // email - new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] { // audio, display, email + new ICSElemDesc(ICSTag.TRIGGER, typeof(ICSClasses.Trigger), null), // audio, display, email + new ICSElemDesc(ICSTag.DURATION, typeof(ICSClasses.Duration), null), // audio, display, email + new ICSElemDesc(ICSTag.REPEAT, typeof(ICSClasses.RepeatCount), null), // audio, display, email + new ICSElemDesc(ICSTag.ATTACHMENT, typeof(ICSClasses.Attachment), null), // audio, email + new ICSElemDesc(ICSTag.DESCRIPTION, typeof(ICSClasses.Description), null),// display, eamil + new ICSElemDesc(ICSTag.SUMMARY, typeof(ICSClasses.Summary), null), // email + new ICSElemDesc(ICSTag.ATTENDEE, typeof(ICSClasses.Attendee), null), // email + new ICSElemDesc(ICSTag.END, typeof(ICSClasses.End), new ICSValueDesc[] { // audio, display, email new ICSValueDesc(ICSTag.VALARM, null) }) }) }), - new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] { + new ICSElemDesc(ICSTag.END, typeof(ICSClasses.End), new ICSValueDesc[] { new ICSValueDesc(ICSTag.VTODO, null) }) }), new ICSValueDesc(ICSTag.VJOURNAL, new ICSElemDesc[] { - new ICSElemDesc(ICSTag.DT_STAMP, null, null), - new ICSElemDesc(ICSTag.UNIQUE_ID, null, null), - new ICSElemDesc(ICSTag.ACCESS_CLASS, null, null), - new ICSElemDesc(ICSTag.DT_CREATED, null, null), - new ICSElemDesc(ICSTag.DT_START, null, null), - new ICSElemDesc(ICSTag.DT_MODIFIED, null, null), - new ICSElemDesc(ICSTag.ORGANIZER, null, null), - new ICSElemDesc(ICSTag.RECURRENCE_ID, null, null), - new ICSElemDesc(ICSTag.SEQ, null, null), - new ICSElemDesc(ICSTag.STATUS, null, null), - new ICSElemDesc(ICSTag.SUMMARY, null, null), - new ICSElemDesc(ICSTag.URL, null, null), - new ICSElemDesc(ICSTag.RRULE, null, null), - new ICSElemDesc(ICSTag.ATTACHMENT, null, null), - new ICSElemDesc(ICSTag.ATTENDEE, null, null), - new ICSElemDesc(ICSTag.CATEGORIES, null, null), - new ICSElemDesc(ICSTag.COMMENT, null, null), - new ICSElemDesc(ICSTag.CONTACT, null, null), - new ICSElemDesc(ICSTag.DESCRIPTION, null, null), - new ICSElemDesc(ICSTag.EXDATE, null, null), - new ICSElemDesc(ICSTag.RELATED, null, null), - new ICSElemDesc(ICSTag.RDATE, null, null), - new ICSElemDesc(ICSTag.RSTATUS, null, null), - new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] { + new ICSElemDesc(ICSTag.DT_STAMP, typeof(ICSClasses.DTStamp), null), + new ICSElemDesc(ICSTag.UNIQUE_ID, typeof(ICSClasses.UniqueID), null), + new ICSElemDesc(ICSTag.ACCESS_CLASS, typeof(ICSClasses.AccessClass), null), + new ICSElemDesc(ICSTag.DT_CREATED, typeof(ICSClasses.DTCreated), null), + new ICSElemDesc(ICSTag.DT_START, typeof(ICSClasses.DTStart), null), + new ICSElemDesc(ICSTag.DT_MODIFIED, typeof(ICSClasses.LastModified), null), + new ICSElemDesc(ICSTag.ORGANIZER, typeof(ICSClasses.Organizer), null), + new ICSElemDesc(ICSTag.RECURRENCE_ID, typeof(ICSClasses.RecurrenceID), null), + new ICSElemDesc(ICSTag.SEQ, typeof(ICSClasses.SequenceNumber), null), + new ICSElemDesc(ICSTag.STATUS, typeof(), null), + new ICSElemDesc(ICSTag.SUMMARY, typeof(), null), + new ICSElemDesc(ICSTag.URL, typeof(), null), + new ICSElemDesc(ICSTag.RRULE, typeof(), null), + new ICSElemDesc(ICSTag.ATTACHMENT, typeof(), null), + new ICSElemDesc(ICSTag.ATTENDEE, typeof(), null), + new ICSElemDesc(ICSTag.CATEGORIES, typeof(), null), + new ICSElemDesc(ICSTag.COMMENT, typeof(), null), + new ICSElemDesc(ICSTag.CONTACT, typeof(), null), + new ICSElemDesc(ICSTag.DESCRIPTION, typeof(), null), + new ICSElemDesc(ICSTag.EXDATE, typeof(), null), + new ICSElemDesc(ICSTag.RELATED, typeof(), null), + new ICSElemDesc(ICSTag.RDATE, typeof(), null), + new ICSElemDesc(ICSTag.RSTATUS, typeof(), null), + new ICSElemDesc(ICSTag.END, typeof(), new ICSValueDesc[] { new ICSValueDesc(ICSTag.VJOURNAL, null) }) }), new ICSValueDesc(ICSTag.VFREEBUSY, new ICSElemDesc[] { - new ICSElemDesc(ICSTag.DT_STAMP, null, null), - new ICSElemDesc(ICSTag.UNIQUE_ID, null, null), - new ICSElemDesc(ICSTag.CONTACT, null, null), - new ICSElemDesc(ICSTag.DT_START, null, null), - new ICSElemDesc(ICSTag.DT_END, null, null), - new ICSElemDesc(ICSTag.ORGANIZER, null, null), - new ICSElemDesc(ICSTag.URL, null, null), - new ICSElemDesc(ICSTag.ATTENDEE, null, null), - new ICSElemDesc(ICSTag.COMMENT, null, null), - new ICSElemDesc(ICSTag.FREEBUSY, null, null), - new ICSElemDesc(ICSTag.RSTATUS, null, null), - new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] { + new ICSElemDesc(ICSTag.DT_STAMP, typeof(), null), + new ICSElemDesc(ICSTag.UNIQUE_ID, typeof(), null), + new ICSElemDesc(ICSTag.CONTACT, typeof(), null), + new ICSElemDesc(ICSTag.DT_START, typeof(), null), + new ICSElemDesc(ICSTag.DT_END, typeof(), null), + new ICSElemDesc(ICSTag.ORGANIZER, typeof(), null), + new ICSElemDesc(ICSTag.URL, typeof(), null), + new ICSElemDesc(ICSTag.ATTENDEE, typeof(), null), + new ICSElemDesc(ICSTag.COMMENT, typeof(), null), + new ICSElemDesc(ICSTag.FREEBUSY, typeof(), null), + new ICSElemDesc(ICSTag.RSTATUS, typeof(), null), + new ICSElemDesc(ICSTag.END, typeof(), new ICSValueDesc[] { new ICSValueDesc(ICSTag.VFREEBUSY, null) }) }), new ICSValueDesc(ICSTag.VTIMEZONE, new ICSElemDesc[] { - new ICSElemDesc(ICSTag.TIME_ZONE_ID, null, null), - new ICSElemDesc(ICSTag.DT_MODIFIED, null, null), - new ICSElemDesc(ICSTag.TIME_ZONE_URL, null, null), - new ICSElemDesc(ICSTag.BEGIN, null, new ICSValueDesc[] { + new ICSElemDesc(ICSTag.TIME_ZONE_ID, typeof(), null), + new ICSElemDesc(ICSTag.DT_MODIFIED, typeof(), null), + new ICSElemDesc(ICSTag.TIME_ZONE_URL, typeof(), null), + new ICSElemDesc(ICSTag.BEGIN, typeof(), new ICSValueDesc[] { new ICSValueDesc(ICSTag.STANDARD, new ICSElemDesc[] { - new ICSElemDesc(ICSTag.DT_START, null, null), - new ICSElemDesc(ICSTag.TIME_ZONE_OFFSET_TO, null, null), - new ICSElemDesc(ICSTag.TIME_ZONE_OFFSET_FROM, null, null), - new ICSElemDesc(ICSTag.RRULE, null, null), - new ICSElemDesc(ICSTag.COMMENT, null, null), - new ICSElemDesc(ICSTag.RDATE, null, null), - new ICSElemDesc(ICSTag.TIME_ZONE_NAME, null, null), - new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] { + new ICSElemDesc(ICSTag.DT_START, typeof(), null), + new ICSElemDesc(ICSTag.TIME_ZONE_OFFSET_TO, typeof(), null), + new ICSElemDesc(ICSTag.TIME_ZONE_OFFSET_FROM, typeof(), null), + new ICSElemDesc(ICSTag.RRULE, typeof(), null), + new ICSElemDesc(ICSTag.COMMENT, typeof(), null), + new ICSElemDesc(ICSTag.RDATE, typeof(), null), + new ICSElemDesc(ICSTag.TIME_ZONE_NAME, typeof(), null), + new ICSElemDesc(ICSTag.END, typeof(), new ICSValueDesc[] { new ICSValueDesc(ICSTag.STANDARD, null) }) }), new ICSValueDesc(ICSTag.DAYLIGHT, new ICSElemDesc[] { - new ICSElemDesc(ICSTag.DT_START, null, null), - new ICSElemDesc(ICSTag.TIME_ZONE_OFFSET_TO, null, null), - new ICSElemDesc(ICSTag.TIME_ZONE_OFFSET_FROM, null, null), - new ICSElemDesc(ICSTag.RRULE, null, null), - new ICSElemDesc(ICSTag.COMMENT, null, null), - new ICSElemDesc(ICSTag.RDATE, null, null), - new ICSElemDesc(ICSTag.TIME_ZONE_NAME, null, null), - new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] { + new ICSElemDesc(ICSTag.DT_START, typeof(), null), + new ICSElemDesc(ICSTag.TIME_ZONE_OFFSET_TO, typeof(), null), + new ICSElemDesc(ICSTag.TIME_ZONE_OFFSET_FROM, typeof(), null), + new ICSElemDesc(ICSTag.RRULE, typeof(), null), + new ICSElemDesc(ICSTag.COMMENT, typeof(), null), + new ICSElemDesc(ICSTag.RDATE, typeof(), null), + new ICSElemDesc(ICSTag.TIME_ZONE_NAME, typeof(), null), + new ICSElemDesc(ICSTag.END, typeof(), new ICSValueDesc[] { new ICSValueDesc(ICSTag.STANDARD, null) }) }) }), - new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] { + new ICSElemDesc(ICSTag.END, typeof(), new ICSValueDesc[] { new ICSValueDesc(ICSTag.VTIMEZONE, null) }) })