All pastes #2091001 Raw Edit

Untitled

public text v1 · immutable
#2091001 ·published 2011-10-18 08:12 UTC
rendered paste body
 public enum PriorityLevel : int
    {
        Normal = 5,
        High = 1,
        Low = 9
    }
    public class Event
    {
        private const string _DATEFORMAT = "yyyyMMdd\\THHmmss\\Z";

        public Event() { }

        public DateTime StartTime;
        public DateTime EndTime;
        public string Location = string.Empty;
        public string Title = string.Empty;
        public string Description = string.Empty;
        public bool UseAlarm = true;
        public PriorityLevel Priority = PriorityLevel.Normal;
        public string Category = string.Empty;

        public override string ToString()
        {
            return Output;
        }

        public string Output
        {
            get
            {
                StringBuilder sb = new StringBuilder();

                sb.Append("BEGIN:VEVENT\n\n");
                sb.Append("DTSTART:");
                sb.Append(StartTime.ToUniversalTime().ToString(_DATEFORMAT));
                sb.Append("\nDTEND:");
                sb.Append(EndTime.ToUniversalTime().ToString(_DATEFORMAT));

                sb.Append("\nLOCATION:");
                sb.Append(Location);

                sb.Append("\nCATEGORIES:");
                sb.Append(Category);

                sb.Append("\nTRANSP:OPAQUE\n");
                sb.Append("SEQUENCE:0\n");
                sb.AppendFormat("UID:RFCALITEM{0}\n", DateTime.Now.Ticks);
                sb.Append("DTSTAMP:");
                sb.Append(StartTime.ToUniversalTime().ToString(_DATEFORMAT));

                sb.Append("\nDESCRIPTION:");
                sb.Append(Description);
                sb.Append("\nSUMMARY:");
                sb.Append(Title);
                sb.Append("\n\nPRIORITY:");
                sb.Append((int)Priority);
                sb.Append("\nCLASS:PUBLIC\n");

                if (UseAlarm)
                {
                    sb.Append("BEGIN:VALARM\n");
                    sb.Append("TRIGGER:PT15M\n");
                    sb.Append("ACTION:DISPLAY\n");
                    sb.Append("DESCRIPTION:Reminder\n");
                    sb.Append("PRIORITY:5\n");
                    sb.Append("END:VALARM\n");
                }
                sb.Append("END:VEVENT\n");

                return sb.ToString();
            }
        }
    }

    public class iCalendar
    {
        public iCalendar()
        {
            this.Events = new List<Event>();
        }

        public List<Event> Events;

        public override string ToString()
        {
            return this.Output;
        }

        public string Output
        {
            get
            {
                StringBuilder sb = new StringBuilder();

                sb.Append("BEGIN:VCALENDAR\n");
                sb.Append("PRODID:-//RyanFarley.com//iCalendar Sample MIMEDIR//EN\n");
                sb.Append("VERSION:2.0\n");
                sb.Append("METHOD:PUBLISH\n");

                foreach (Event ev in Events)
                    sb.Append(ev.Output);

                sb.Append("END:VCALENDAR");

                return sb.ToString();
            }
        }

    }