678 lines
30 KiB
C#
678 lines
30 KiB
C#
//-----------------------------------------------------------------------------
|
|
// <copyright file="ICSObjectConst.cs" company="BTU/IIT">
|
|
// Company copyright tag.
|
|
// </copyright>
|
|
// <author>fiedlchr</author>
|
|
// <sience>27.08.2013</sience>
|
|
//-----------------------------------------------------------------------------
|
|
namespace CampusAppWP8.Utility
|
|
{
|
|
using System.Collections.Generic;
|
|
|
|
public class ICSDict
|
|
{
|
|
public class ICSDesc
|
|
{
|
|
private string name = string.Empty;
|
|
|
|
public ICSDesc()
|
|
{
|
|
}
|
|
|
|
public string Name
|
|
{
|
|
get
|
|
{
|
|
return this.name;
|
|
}
|
|
protected set
|
|
{
|
|
this.name = value;
|
|
}
|
|
}
|
|
|
|
public bool Is(string tag)
|
|
{
|
|
return this.name.Equals(tag);
|
|
}
|
|
}
|
|
|
|
public class ICSParamDesc : ICSDesc
|
|
{
|
|
private List<string> types = null;
|
|
|
|
public ICSParamDesc(string name, string[] typeList) : base()
|
|
{
|
|
this.Name = name;
|
|
|
|
if((typeList != null) && (typeList.Length > 0))
|
|
{
|
|
this.types = new List<string>();
|
|
this.types.AddRange(types);
|
|
}
|
|
}
|
|
|
|
public List<string> List
|
|
{
|
|
get
|
|
{
|
|
return this.types;
|
|
}
|
|
private set
|
|
{
|
|
this.types = value;
|
|
}
|
|
}
|
|
|
|
public bool HasList()
|
|
{
|
|
return ((this.types != null) && (this.types.Count > 0));
|
|
}
|
|
}
|
|
|
|
public class ICSValueDesc : ICSDesc
|
|
{
|
|
private List<ICSElemDesc> subs = null;
|
|
|
|
public ICSValueDesc(string name, ICSElemDesc[] elemList) : base()
|
|
{
|
|
this.Name = name;
|
|
|
|
if((elemList != null) && (elemList.Length > 0))
|
|
{
|
|
this.subs = new List<ICSElemDesc>();
|
|
this.subs.AddRange(elemList);
|
|
}
|
|
}
|
|
|
|
public List<ICSElemDesc> List
|
|
{
|
|
get
|
|
{
|
|
return this.subs;
|
|
}
|
|
private set
|
|
{
|
|
this.subs = value;
|
|
}
|
|
}
|
|
|
|
public bool HasList()
|
|
{
|
|
return ((this.subs != null) && (this.subs.Count > 0));
|
|
}
|
|
|
|
public bool IsInList(string tagName)
|
|
{
|
|
bool retValue = false;
|
|
|
|
if (this.HasList() == true)
|
|
{
|
|
foreach (ICSElemDesc e in this.subs)
|
|
{
|
|
if (e.Is(tagName) == true)
|
|
{
|
|
retValue = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return retValue;
|
|
}
|
|
|
|
public ICSElemDesc GetValue(string tagName)
|
|
{
|
|
ICSElemDesc retValue = null;
|
|
|
|
if (this.HasList() == true)
|
|
{
|
|
foreach (ICSElemDesc e in this.subs)
|
|
{
|
|
if (e.Is(tagName) == true)
|
|
{
|
|
retValue = e;
|
|
}
|
|
}
|
|
}
|
|
|
|
return retValue;
|
|
}
|
|
}
|
|
|
|
|
|
public class ICSElemDesc : ICSDesc
|
|
{
|
|
private List<ICSParamDesc> param = null;
|
|
private List<ICSValueDesc> value = null;
|
|
|
|
public ICSElemDesc(string name, ICSParamDesc[] paramList, ICSValueDesc[] valueList) : base()
|
|
{
|
|
this.Name = name;
|
|
|
|
if ((paramList != null) && (paramList.Length > 0))
|
|
{
|
|
this.param = new List<ICSParamDesc>();
|
|
this.param.AddRange(paramList);
|
|
}
|
|
|
|
if ((valueList != null) && (valueList.Length > 0))
|
|
{
|
|
this.value = new List<ICSValueDesc>();
|
|
this.value.AddRange(valueList);
|
|
}
|
|
}
|
|
|
|
public List<ICSParamDesc> ParamList
|
|
{
|
|
get
|
|
{
|
|
return this.param;
|
|
}
|
|
private set
|
|
{
|
|
this.param = value;
|
|
}
|
|
}
|
|
|
|
public List<ICSValueDesc> ValueList
|
|
{
|
|
get
|
|
{
|
|
return this.value;
|
|
}
|
|
private set
|
|
{
|
|
this.value = value;
|
|
}
|
|
}
|
|
|
|
public bool HasParams()
|
|
{
|
|
return ((this.param != null) && (this.param.Count > 0));
|
|
}
|
|
|
|
public bool HasValues()
|
|
{
|
|
return ((this.value != null) && (this.value.Count > 0));
|
|
}
|
|
|
|
public ICSValueDesc GetValue(string tagName)
|
|
{
|
|
ICSValueDesc retValue = null;
|
|
|
|
if (this.HasValues() == true)
|
|
{
|
|
foreach (ICSValueDesc e in this.value)
|
|
{
|
|
if (e.Is(tagName) == true)
|
|
{
|
|
retValue = e;
|
|
}
|
|
}
|
|
}
|
|
|
|
return retValue;
|
|
}
|
|
}
|
|
|
|
public static ICSValueDesc Root = new ICSValueDesc("ROOT", new ICSElemDesc[] {
|
|
new ICSElemDesc(ICSTag.BEGIN, null, 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 ICSValueDesc(ICSValue.GREGORIAN, null)
|
|
}),
|
|
new ICSElemDesc(ICSTag.METHOD, null, null),
|
|
new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] {
|
|
new ICSValueDesc(ICSTag.VCALENDAR, null)
|
|
}),
|
|
new ICSElemDesc(ICSTag.BEGIN, null, new ICSValueDesc[] {
|
|
new ICSValueDesc(ICSTag.VEVENT, new ICSElemDesc[] {
|
|
new ICSElemDesc(ICSTag.DT_STAMP, null, null),
|
|
new ICSElemDesc(ICSTag.USER_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 ICSValueDesc(ICSTag.VALARM, new ICSElemDesc[] {
|
|
new ICSElemDesc(ICSTag.ACTION, null, 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 ICSValueDesc(ICSTag.VALARM, null)
|
|
})
|
|
})
|
|
}),
|
|
new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] {
|
|
new ICSValueDesc(ICSTag.VEVENT, null)
|
|
})
|
|
}),
|
|
new ICSValueDesc(ICSTag.VTODO, new ICSElemDesc[] {
|
|
new ICSElemDesc(ICSTag.DT_STAMP, null, null),
|
|
new ICSElemDesc(ICSTag.USER_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 ICSValueDesc(ICSTag.VALARM, new ICSElemDesc[] {
|
|
new ICSElemDesc(ICSTag.ACTION, null, 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 ICSValueDesc(ICSTag.VALARM, null)
|
|
})
|
|
})
|
|
}),
|
|
new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] {
|
|
new ICSValueDesc(ICSTag.VTODO, null)
|
|
})
|
|
}),
|
|
new ICSValueDesc(ICSTag.VJOURNAL, new ICSElemDesc[] {
|
|
new ICSElemDesc(ICSTag.DT_STAMP, null, null),
|
|
new ICSElemDesc(ICSTag.USER_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 ICSValueDesc(ICSTag.VJOURNAL, null)
|
|
})
|
|
}),
|
|
new ICSValueDesc(ICSTag.VFREEBUSY, new ICSElemDesc[] {
|
|
new ICSElemDesc(ICSTag.DT_STAMP, null, null),
|
|
new ICSElemDesc(ICSTag.USER_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 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 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 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 ICSValueDesc(ICSTag.STANDARD, null)
|
|
})
|
|
})
|
|
}),
|
|
new ICSElemDesc(ICSTag.END, null, new ICSValueDesc[] {
|
|
new ICSValueDesc(ICSTag.VTIMEZONE, null)
|
|
})
|
|
})
|
|
})
|
|
})
|
|
})
|
|
});
|
|
}
|
|
|
|
public class ICSTag
|
|
{
|
|
|
|
public const string BEGIN = "BEGIN";
|
|
public const string END = "END";
|
|
|
|
// Calendar Components
|
|
public const string VCALENDAR = "VCALENDAR";
|
|
// 1-*
|
|
public const string VERSION = "VERSION";
|
|
public const string PRODUCT_ID = "PRODID";
|
|
// 0-1
|
|
public const string CAL_SCALE = "CALSCALE";
|
|
public const string METHOD = "METHOD";
|
|
// 0-*
|
|
public const string X_WR_CALNAME = "X-WR-CALNAME";
|
|
|
|
// Event Component
|
|
public const string VEVENT = "VEVENT";
|
|
// 1-1
|
|
public const string DT_STAMP = "DTSTAMP";
|
|
public const string UNIQUE_ID = "UID";
|
|
// if METHOD is NOT set: 1-1
|
|
// otherwise: 0-1
|
|
public const string DT_START = "DTSTART";
|
|
// 0-1
|
|
public const string ACCESS_CLASS = "CLASS";
|
|
public const string DT_CREATED = "CREATED";
|
|
public const string DESCRIPTION = "DESCRIPTION";
|
|
public const string GEO = "GEO"; // value-format: float;float
|
|
public const string DT_MODIFIED = "LAST-MODIFIED";
|
|
public const string LOCATION = "LOCATION";
|
|
public const string ORGANIZER = "ORGANIZER";
|
|
public const string PRIORITY = "PRIORITY";
|
|
public const string SEQ = "SEQ";
|
|
public const string STATUS = "STATUS";
|
|
public const string SUMMARY = "SUMMARY";
|
|
public const string TRANSP = "TRANSP";
|
|
public const string URL = "URL";
|
|
public const string RECURRENCE_ID = "RECURID"; // "RECURRENCE-ID"; ???
|
|
public const string RRULE = "RRULE";
|
|
// one of them can (0-1), but NOT both
|
|
public const string DT_END = "DTEND";
|
|
public const string DURATION = "DURATION";
|
|
// 0-*
|
|
public const string ATTACHMENT = "ATTACH";
|
|
public const string ATTENDEE = "ATTENDEE";
|
|
public const string CATEGORIES = "CATEGORIES";
|
|
public const string COMMENT = "COMMENT";
|
|
public const string CONTACT = "CONTACT";
|
|
public const string EXDATE = "EXDATE";
|
|
public const string RSTATUS = "RSTATUS";
|
|
public const string RELATED = "RELATED";
|
|
public const string RESOURCES = "RESOURCES";
|
|
public const string RDATE = "RDATE";
|
|
|
|
// To-Do Component
|
|
public const string VTODO = "VTODO";
|
|
public const string COMPLETED = "COMPLETED";
|
|
public const string PERCENT = "PERCENT-COMPLETE";
|
|
public const string DUE = "DUE";
|
|
// Journal Component
|
|
public const string VJOURNAL = "VJOURNAL";
|
|
|
|
// Free/Busy Component
|
|
public const string VFREEBUSY = "VFREEBUSY";
|
|
// 0-*
|
|
public const string FREEBUSY = "FREEBUSY";
|
|
|
|
// Time Zone Component
|
|
public const string VTIMEZONE = "VTIMEZONE";
|
|
// 1-1
|
|
public const string TIME_ZONE_ID = "TZID";
|
|
// 0-1
|
|
// DT_MODIFIED
|
|
public const string TIME_ZONE_URL = "TZURL";
|
|
// one of both MUST occure: 1-*
|
|
|
|
// Time Zone: Standardc/Daylightc
|
|
public const string STANDARD = "STANDARD";
|
|
public const string DAYLIGHT = "DAYLIGHT";
|
|
// 1-1
|
|
// DT_START
|
|
public const string TIME_ZONE_OFFSET_TO = "TZOFFSETTO";
|
|
public const string TIME_ZONE_OFFSET_FROM = "TZOFFSETFROM";
|
|
// 0-1
|
|
// RRULE
|
|
// 0-*
|
|
// COMMENT
|
|
// RDATE
|
|
public const string TIME_ZONE_NAME = "TZNAME";
|
|
|
|
// Alarm Component
|
|
public const string VALARM = "VALARM";
|
|
// Alarm by audio
|
|
// 1-1
|
|
public const string TRIGGER = "TRIGGER";
|
|
public const string ACTION = "ACTION"; // (AUDIO)
|
|
// 0-1 , when one occure so MUST the other
|
|
// DURATION
|
|
public const string REPEAT = "REPEAT";
|
|
// 0-1
|
|
// ATTACHMENT
|
|
// Alarm by disp
|
|
// 1-1
|
|
// ACTION (DISPLAY)
|
|
// DESCRIPTION
|
|
// TRIGGER
|
|
// 0-1, when one occure so MUST the other
|
|
// DURATION
|
|
// REPEAT
|
|
// Alarm by email
|
|
// 1-1
|
|
// ACTION (EMAIL)
|
|
// DESCRIPTION
|
|
// TRIGGER
|
|
// SUMMARY
|
|
// 1-*
|
|
// ATTENDEE
|
|
// 0-1, when one occure so MUST the other
|
|
// DURATION
|
|
// REPEAT
|
|
// 0-*
|
|
// ATTACH
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ???
|
|
|
|
// public const string RELATED_TO = "RELATED-TO";
|
|
|
|
}
|
|
|
|
public class ICSParam
|
|
{
|
|
// see http://tools.ietf.org/html/rfc5545 3.2.
|
|
|
|
public const string ALT_REPRESENTATION = "ALTREP";
|
|
public const string COMMON_NAME = "CN";
|
|
public const string CALENDAR_USER_TYPE = "CUTYPE";
|
|
public const string DELEGATORS = "DELEGATED-FROM";
|
|
public const string DELEGATEES = "DELEGATED-TO";
|
|
public const string DIR_REFERENCE = "DIR";
|
|
public const string ENCODING = "ENCODING";
|
|
public const string FORMAT_TYPE = "FMTTYPE";
|
|
public const string FREE_BUSY_TIME_TYPE = "FBTYPE";
|
|
public const string LANGUAGE = "LANGUAGE";
|
|
public const string MEMBER = "MEMBER";
|
|
public const string PARTICIPATION_STATUS = "PARTSTAT";
|
|
public const string RECUR_ID_RANGE = "RANGE";
|
|
public const string ALARM_TRIGGER_RELATIONSHIP = "RELATED";
|
|
public const string RELATIONSHIP_TYPE = "RELTYPE";
|
|
public const string PARTICIPATION_ROLE = "ROLE";
|
|
public const string REPLY_EXPECTATION = "RSVP";
|
|
public const string SENT_BY = "SENT-BY";
|
|
public const string TIME_ZONE_ID = "TZID";
|
|
public const string VALUE_TYPE = "VALUE";
|
|
public const string NONE = "";
|
|
}
|
|
|
|
public class ICSValue
|
|
{
|
|
// CAL_SCALE (see 3.7.1.)
|
|
public const string GREGORIAN = "GREGORIAN";
|
|
// VALARM.ACTION
|
|
public const string AUDIO = "AUDIO";
|
|
public const string DISP = "DISPLAY";
|
|
public const string EMAIL = "EMAIL";
|
|
// ACCESS_CLASS
|
|
public const string PUBLIC = "PUBLIC";
|
|
public const string PRIVATE = "PRIVATE";
|
|
public const string CONFIDENTIAL = "CONFIDENTIAL";
|
|
// STATUS
|
|
// (in vevent)
|
|
public const string TENTATIVE = "TENTATIVE";
|
|
public const string CONFIRMED = "CONFIRMED";
|
|
public const string CANCELLED = "CANCELLED";
|
|
// (in vtodo)
|
|
public const string NEEDS_ACTION = "NEEDS-ACTION";
|
|
public const string COMPLETED = "COMPLETED";
|
|
public const string IN_PROCESS = "IN-PROCESS";
|
|
// public const string CANCELLED = "CANCELLED";
|
|
// (in vjournal)
|
|
public const string DRAFT = "DRAFT";
|
|
public const string FINAL = "FINAL";
|
|
// public const string CANCELLED = "CANCELLED";
|
|
// TRANSP
|
|
public const string OPAQUE = "OPAQUE";
|
|
public const string TRANSPARENT = "TRANSPARENT";
|
|
}
|
|
|
|
public class ICSParamValue
|
|
{
|
|
// CALENDAR_USER_TYPE
|
|
public const string INDIVIDUAL = "INDIVIDUAL"; // default
|
|
public const string GROUP = "GROUP";
|
|
public const string RESOURCE = "RESOURCE";
|
|
public const string ROOM = "ROOM";
|
|
public const string UNKNOWN = "UNKNOWN";
|
|
// ENCODING
|
|
public const string BIT8 = "8BIT"; // default
|
|
public const string BASE64 = "BASE64";
|
|
// FREE_BUSY_TIME_TYPE
|
|
public const string FREE = "FREE";
|
|
public const string BUSY = "BUSY";
|
|
public const string BUSY_UNAVAILABLE = "BUSY-UNAVAILABLE";
|
|
public const string BUSY_TENTATIVE = "BUSY-TENTATIVE";
|
|
// PARTICIPATION_STATUS
|
|
public const string NEEDS_ACTION = "NEEDS_ACTION"; // default
|
|
public const string ACCEPTED = "ACCEPTED";
|
|
public const string DECLINED = "DECLINED";
|
|
public const string TENTATIVE = "TENTATIVE";
|
|
public const string DELEGATED = "DELEGATED";
|
|
public const string COMPLETED = "COMPLETED";
|
|
// RECUR_ID_RANGE
|
|
public const string THIS_AND_FUTURE = "THISANDFUTURE";
|
|
public const string THIS_AND_PRIOR = "THISANDPRIOR";
|
|
// ALARM_TRIGGER_RELATIONSHIP
|
|
public const string START = "START";
|
|
public const string END = "END";
|
|
// RELATIONSHIP_TYPE
|
|
public const string PARENT = "PARENT"; // default
|
|
public const string CHILD = "CHILD";
|
|
public const string SIBLING = "SIBLING";
|
|
// PARTICIPATION_ROLE
|
|
public const string CHAIR = "CHAIR";
|
|
public const string REQ_PARTICIPANT = "REQ-PARTICIPANT"; //default
|
|
public const string OPT_PARTICIPANT = "OPT-PARTICIPANT";
|
|
public const string NON_PARTICIPANT = "NON-PARTICIPANT";
|
|
// REPLY_EXPECTATION
|
|
public const string TRUE = "TRUE";
|
|
public const string FALSE = "FALSE"; // default
|
|
// VALUE_TYPE (see http://tools.ietf.org/html/rfc5545 3.3.)
|
|
public const string BINARY = "BINARY";
|
|
public const string BOOLEAN = "BOOLEAN";
|
|
public const string CAL_ADDRESS = "CAL-ADDRESS";
|
|
public const string DATE = "DATE";
|
|
public const string DATE_TIME = "DATE-TIME";
|
|
public const string DURATION = "DURATION";
|
|
public const string FLOAT = "FLOAT";
|
|
public const string INTEGER = "INTEGER";
|
|
public const string PERIOD = "PERIOD";
|
|
public const string RECUR = "RECUR";
|
|
public const string TEXT = "TEXT";
|
|
public const string TIME = "TIME";
|
|
public const string URI = "URI";
|
|
public const string UTC_OFFSET = "UTC-OFFSET";
|
|
// PARTSTAT
|
|
public const string IN_PROCESS = "IN-PROCESS";
|
|
}
|
|
}
|