estoy trabajando en la aplicación que analiza el Calendario de Google a través de Google API para DDay.iCalcalendario de análisis de Google para DDay.iCal
Los principales atributos, propiedades se manejan fácilmente ... ev.Summary = evt.Title. Texto;
El problema es cuando tengo una recurrentes evento, el XML contiene un campo como:
<gd:recurrence>
DTSTART;VALUE=DATE:20100916
DTEND;VALUE=DATE:20100917
RRULE:FREQ=YEARLY
</gd:recurrence>
o
<gd:recurrence>
DTSTART:20100915T220000Z
DTEND:20100916T220000Z
RRULE:FREQ=YEARLY;BYMONTH=9;WKST=SU"
</gd:recurrence>
usando el siguiente código:
String[] lines =
evt.Recurrence.Value.Split(new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
foreach (String line in lines)
{
if (line.StartsWith("R"))
{
RecurrencePattern rp = new RecurrencePattern(line);
ev.RecurrenceRules.Add(rp);
}
else
{
ISerializationContext ctx = new SerializationContext();
ISerializerFactory factory = new DDay.iCal.Serialization.iCalendar.SerializerFactory();
ICalendarProperty property = new CalendarProperty();
IStringSerializer serializer = factory.Build(property.GetType(), ctx) as IStringSerializer;
property = (ICalendarProperty)serializer.Deserialize(new StringReader(line));
ev.Properties.Add(property);
Console.Out.WriteLine(property.Name + " - " + property.Value);
}
}
Las RRULE se analizan correctamente, pero el problema es que otra propiedad (d atetimes) los valores están vacíos ...
Quizás quiso decir utilizar dos puntos después de DTSTART y dtend en su primer ejemplo? ¿Y se supone que hay una comilla doble después de SU en el segundo ejemplo? –