public static string SerializeEvent(DDay.iCal.IEvent eventObj) { try { var context = new DDay.iCal.Serialization.SerializationContext(); var factory = new DDay.iCal.Serialization.iCalendar.SerializerFactory(); var serializer = factory.Build(eventObj.GetType(), context) as DDay.iCal.Serialization.IStringSerializer; return(serializer != null?serializer.SerializeToString(eventObj) : null); } catch (Exception ex) { log4net.LogManager.GetLogger("ASC.Calendar").Error(ex); return(null); } }
public static BaseEvent ConvertEvent(DDay.iCal.IEvent eventObj) { if (eventObj == null) { return(null); } var result = new BusinessObjects.Event(); result.Name = eventObj.Summary; result.Description = eventObj.Description; result.AllDayLong = eventObj.IsAllDay; result.Uid = eventObj.UID; result.UtcStartDate = eventObj.Start.UTC; result.UtcEndDate = eventObj.End.UTC; result.RecurrenceRule = RecurrenceRule.Parse(eventObj.RecurrenceRules.Any() ? SerializeRecurrencePattern(eventObj.RecurrenceRules.First()) : string.Empty); if (eventObj.ExceptionDates.Any()) { result.RecurrenceRule.ExDates = new List <RecurrenceRule.ExDate>(); foreach (var periodList in eventObj.ExceptionDates.First()) { result.RecurrenceRule.ExDates.Add(new RecurrenceRule.ExDate { Date = periodList.StartTime.UTC, isDateTime = periodList.StartTime.UTC != periodList.StartTime.UTC.Date }); } } result.Status = (EventStatus)eventObj.Status; return(result); }