adding classes to dict

This commit is contained in:
Christian Fiedler
2013-09-04 18:59:03 +02:00
parent 4fba48225b
commit e02c2d3607
2 changed files with 487 additions and 164 deletions

View File

@@ -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<Tuple<string, string[]>> PParams
= new List<Tuple<string, string[]>>();
public static readonly List<string> PValues
= new List<string>(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<Tuple<string, string[]>> PParams
= new List<Tuple<string, string[]>>();
public static readonly List<string> PValues
= new List<string>(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<Tuple<string, string[]>> PParams
= new List<Tuple<string, string[]>>();
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<Tuple<string, string>> PParams
= new List<Tuple<string, string>>();
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<Tuple<string, string[]>> PParams
= new List<Tuple<string,string[]>>();
public static readonly List<string> PValues
= new List<string>(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)
{

View File

@@ -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<ICSParamDesc> param = null;
private List<ICSValueDesc> 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<ICSParamDesc>();
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<ICSParamDesc> ParamList
{
get
@@ -173,7 +169,7 @@ namespace CampusAppWP8.Utility
this.param = value;
}
}
*/
public List<ICSValueDesc> 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)
})
})