示例#1
0
 public static string SerializeCalendar(Ical.Net.Interfaces.ICalendar calendar)
 {
     try
     {
         var serializer = new Ical.Net.Serialization.iCalendar.Serializers.CalendarSerializer(calendar);
         return(serializer.SerializeToString(calendar));
     }
     catch (Exception)
     {
         return(null);
     }
 }
 public static string SerializeEvent(Ical.Net.Interfaces.Components.IEvent eventObj)
 {
     try
     {
         var serializer = new Ical.Net.Serialization.iCalendar.Serializers.CalendarSerializer();
         return(serializer.SerializeToString(eventObj));
     }
     catch (Exception ex)
     {
         log4net.LogManager.GetLogger("ASC.Calendar").Error(ex);
         return(null);
     }
 }
 public static Ical.Net.Interfaces.Components.IEvent DeserializeEvent(TextReader stringReader)
 {
     try
     {
         var serializer = new Ical.Net.Serialization.iCalendar.Serializers.CalendarSerializer();
         return((Ical.Net.Interfaces.Components.IEvent)serializer.Deserialize(stringReader));
     }
     catch (Exception ex)
     {
         log4net.LogManager.GetLogger("ASC.Calendar").Error(ex);
         return(null);
     }
 }
示例#4
0
        public void EnsureAutomaticallySetDTSTAMPisSerializedAsKindUTC()
        {
            var ical = new Ical.Net.Calendar();
            var evt  = new Ical.Net.Event();

            ical.Events.Add(evt);

            var serializer         = new Ical.Net.Serialization.iCalendar.Serializers.CalendarSerializer();
            var serializedCalendar = serializer.SerializeToString(ical);

            var lines  = serializedCalendar.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).ToList();
            var result = lines.First(s => s.StartsWith("DTSTAMP"));

            Assert.AreEqual($"DTSTAMP:{evt.DtStamp.Year}{evt.DtStamp.Month:00}{evt.DtStamp.Day:00}T{evt.DtStamp.Hour:00}{evt.DtStamp.Minute:00}{evt.DtStamp.Second:00}Z", result);
        }
        public void TZIDPropertyMustNotBeAppliedToUtcDateTime()
        {
            var ical = new Ical.Net.Calendar();
            var evt  = new Ical.Net.CalendarEvent();

            evt.DtStamp = new CalDateTime(new DateTime(2016, 8, 17, 2, 30, 0, DateTimeKind.Utc));
            ical.Events.Add(evt);

            var serializer         = new Ical.Net.Serialization.iCalendar.Serializers.CalendarSerializer();
            var serializedCalendar = serializer.SerializeToString(ical);

            var lines  = serializedCalendar.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).ToList();
            var result = lines.First(s => s.StartsWith("DTSTAMP"));

            Assert.AreEqual("DTSTAMP:20160817T023000Z", result);
        }
        public static Ical.Net.Interfaces.Components.IEvent DeserializeEvent(string iCalEventString)
        {
            if (string.IsNullOrEmpty(iCalEventString))
            {
                return(null);
            }

            try
            {
                using (var stringReader = new StringReader(iCalEventString))
                {
                    var serializer = new Ical.Net.Serialization.iCalendar.Serializers.CalendarSerializer();
                    return((Ical.Net.Interfaces.Components.IEvent)serializer.Deserialize(stringReader));
                }
            }
            catch (Exception ex)
            {
                log4net.LogManager.GetLogger("ASC.Calendar").Error(ex);
                return(null);
            }
        }