コード例 #1
0
 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);
     }
 }
コード例 #2
0
        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);
        }