public static BaseCalendar ConvertCalendar(DDay.iCal.IICalendar calandarObj)
        {
            if (calandarObj == null)
            {
                return(null);
            }

            var result = new BusinessObjects.Calendar();

            result.Name = string.IsNullOrEmpty(calandarObj.Name)
                           ? calandarObj.Properties.ContainsKey("X-WR-CALNAME")
                                 ? calandarObj.Properties["X-WR-CALNAME"].Value.ToString()
                                 : string.Empty
                           : calandarObj.Name;

            result.Description = calandarObj.Properties.ContainsKey("X-WR-CALDESC")
                                     ? calandarObj.Properties["X-WR-CALDESC"].Value.ToString()
                                     : string.Empty;

            var tzids = calandarObj.TimeZones.Select(x => x.TZID).Where(x => !string.IsNullOrEmpty(x)).ToList();

            result.TimeZone = tzids.Any()
                                  ? TimeZoneConverter.GetTimeZone(tzids.First())
                                  : (calandarObj.Properties.ContainsKey("X-WR-TIMEZONE")
                                         ? TimeZoneConverter.GetTimeZone(
                                         calandarObj.Properties["X-WR-TIMEZONE"].Value.ToString())
                                         : CoreContext.TenantManager.GetCurrentTenant().TimeZone);

            return(result);
        }
 public static string SerializeCalendar(DDay.iCal.IICalendar calendar)
 {
     try
     {
         var context    = new DDay.iCal.Serialization.SerializationContext();
         var factory    = new DDay.iCal.Serialization.iCalendar.SerializerFactory();
         var serializer = factory.Build(calendar.GetType(), context) as DDay.iCal.Serialization.IStringSerializer;
         return(serializer != null?serializer.SerializeToString(calendar) : null);
     }
     catch (Exception ex)
     {
         log4net.LogManager.GetLogger("ASC.Calendar").Error(ex);
         return(null);
     }
 }
示例#3
0
        public bool Contains(DDay.iCal.IICalendar calendar)
        {
            if (!History.Any() || calendar == null || calendar.Events == null || calendar.Events.FirstOrDefault() == null)
            {
                return(false);
            }

            var eventObj = calendar.Events.First();

            var isExist = History
                          .Where(x => x.Method == calendar.Method)
                          .Select(x => x.Events.First())
                          .Any(x => x.Sequence == eventObj.Sequence && x.DTStamp.UTC == eventObj.DTStamp.UTC);

            return(isExist);
        }