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); } }
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); }