Чтение повторяющихся событий Календаря Google с использованием .Net API - PullRequest
1 голос
/ 21 июня 2011

Я выполняю некоторую синхронизацию между различными форматами календаря, и один из провайдеров Календаря - Google. Другие провайдеры предоставляют эти данные в объектно-ориентированном подходе через их API, но в Google они отображаются через Events.Recurrence как это:

"DTSTART;TZID=Pacific/Auckland:20110629T100000\r\n
DTEND;TZID=Pacific/Auckland:20110629T110000\r\n
RRULE:FREQ=DAILY;COUNT=10;INTERVAL=3\r\n
BEGIN:VTIMEZONE\r\n
TZID:Pacific/Auckland\r\n
X-LIC-LOCATION:Pacific/Auckland\r\n
BEGIN:DAYLIGHT\r\n
TZOFFSETFROM:+1200\r\n
TZOFFSETTO:+1300\r\n
TZNAME:NZDT\r\n
DTSTART:19700927T020000\r\n
RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU\r\n
END:DAYLIGHT\r\n
BEGIN:STANDARD\r\n
TZOFFSETFROM:+1300\r\n
TZOFFSETTO:+1200\r\n
TZNAME:NZST\r\n
DTSTART:19700405T030000\r\n
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\n
END:STANDARD\r\n
END:VTIMEZONE"

Есть ли способ синтаксического анализа этого в объектно-ориентированном формате?то есть объект повторения?Все примеры, которые я видел онлайн, устанавливают те значения, которые проще, чем читать.Любые образцы чтения и записи в него приветствуются.

Ответы [ 2 ]

2 голосов
/ 04 июля 2011

EventEntry.Times - это коллекция, поэтому вы должны разобрать ее в объект ExtensionCollection, который затем можете выполнить итерацию.

foreach (Google.GData.Calendar.EventEntry ev in calFeed.Entries)
    {
        CalendarEvents ce = new CalendarEvents();

        ce.Title = ev.Title.Text;
        ExtensionCollection<When> v = ev.Times;
        ce.Date = v[0].StartTime;
        ce.Content = ev.Content.Content;
    }

В моем проекте итерации не было необходимости, но я думаю, что выполучить идею.

1 голос
/ 17 сентября 2011

Попробуйте эту библиотеку: http://icalparser.sourceforge.net/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...