Exemple #1
0
        private string GetCalendarData()
        {
            Ical.Net.Calendar calendar = new Ical.Net.Calendar();
            Ical.Net.Event    calevent = new Ical.Net.Event();
            calevent.DtStart     = new CalDateTime(StartOn);
            calevent.DtEnd       = new CalDateTime(EndOn);
            calevent.Description = Description;
            calevent.Location    = Location;
            calevent.Summary     = Subject;
            calevent.Organizer   = new Organizer(CreatedBy.CorporateEmail);
            calevent.IsAllDay    = AllDay;
            calevent.Uid         = Oid.ToString();

            foreach (ScheduleParticipant peeps in ScheduleParticipants)
            {
                string role;
                switch ((int)peeps.AttendanceType)
                {
                case 0:
                    role = "REQ-PARTICIPANT";
                    break;

                case 1:
                    role = "OPT-PARTICIPANT";
                    break;

                case 2:
                    role = "NON-PARTICIPANT";
                    break;

                default:
                    role = "REQ-PARTICIPANT";
                    break;
                }
                Attendee attendee = new Attendee()
                {
                    CommonName = peeps.Participant.FullName,
                    Role       = role,
                    Rsvp       = true,
                    Value      = new Uri(String.Format("mailto:{0}", peeps.Participant.CorporateEmail))
                };
                calevent.Attendees.Add(attendee);
            }
            calendar.Events.Add(calevent);
            calendar.Method = "REQUEST";
            CalendarSerializer serializer = new CalendarSerializer(calendar);
            string             calData    = serializer.SerializeToString();

            return(calData);
        }
Exemple #2
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);
        }
Exemple #3
0
        public void EnsureCorrectSetDTSTAMPisSerializedAsKindUTC()
        {
            var ical = new Ical.Net.Calendar();
            var evt  = new Ical.Net.Event();

            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 CreateEvent(string name, string description, DateTime startUtcDate, DateTime endUtcDate, string repeatType, bool isAllDayLong, EventStatus status)
        {
            var evt = new Ical.Net.Event
            {
                Summary         = name,
                Location        = string.Empty,
                Description     = description,
                IsAllDay        = isAllDayLong,
                DtStamp         = new Ical.Net.DataTypes.CalDateTime(DateTime.SpecifyKind(DateTime.UtcNow, DateTimeKind.Utc), TimeZoneInfo.Utc.Id),
                Start           = new Ical.Net.DataTypes.CalDateTime(DateTime.SpecifyKind(startUtcDate, DateTimeKind.Utc), TimeZoneInfo.Utc.Id),
                End             = new Ical.Net.DataTypes.CalDateTime(DateTime.SpecifyKind(endUtcDate, DateTimeKind.Utc), TimeZoneInfo.Utc.Id),
                RecurrenceRules = new List <Ical.Net.Interfaces.DataTypes.IRecurrencePattern>(),
                Status          = (Ical.Net.EventStatus)status
            };

            var rrule = RecurrenceRule.Parse(repeatType).ToString(true);

            if (!string.IsNullOrEmpty(rrule))
            {
                evt.RecurrenceRules.Add(new Ical.Net.DataTypes.RecurrencePattern(rrule));
            }

            return(evt);
        }
        public static Ical.Net.Interfaces.Components.IEvent ConvertEvent(BaseEvent eventObj)
        {
            if (eventObj == null)
            {
                return(null);
            }

            var result = new Ical.Net.Event();

            result.Summary = eventObj.Name;

            result.Location = string.Empty;

            result.Description = eventObj.Description;

            result.IsAllDay = eventObj.AllDayLong;

            result.Uid = eventObj.Uid;

            result.Start = new Ical.Net.DataTypes.CalDateTime(DateTime.SpecifyKind(eventObj.UtcStartDate, DateTimeKind.Utc), TimeZoneInfo.Utc.Id);

            result.End = new Ical.Net.DataTypes.CalDateTime(DateTime.SpecifyKind(eventObj.UtcEndDate, DateTimeKind.Utc), TimeZoneInfo.Utc.Id);

            result.RecurrenceRules = new List <Ical.Net.Interfaces.DataTypes.IRecurrencePattern>();

            var rrule = eventObj.RecurrenceRule.ToString(true);

            if (!string.IsNullOrEmpty(rrule))
            {
                result.RecurrenceRules.Add(new Ical.Net.DataTypes.RecurrencePattern(rrule));
            }

            result.Status = (Ical.Net.EventStatus)eventObj.Status;

            return(result);
        }