예제 #1
0
        /// <summary>
        /// Gets the event info collection.
        /// </summary>
        /// <param name="dtStart">The dt start.</param>
        /// <param name="dtEnd">The dt end.</param>
        /// <returns></returns>
        public EventInfoCollections GetEventInfoCollection(DateTime dtStart,
                                                           DateTime dtEnd)
        {
            EventInfoCollections retVal = new EventInfoCollections();

            if (_calendarId == -1)
            {
                throw new NullReferenceException("calendarId");
            }

            CalendarEventLink[] eventLinks = CalendarEventLink.List(new FilterElement("CalendarId",
                                                                                      FilterElementType.Equal, _calendarId));

            foreach (CalendarEventLink eventLink in eventLinks)
            {
                try
                {
                    CalendarEvent calEvent = new CalendarEvent(eventLink.EventId);

                    if ((calEvent.DtStart >= dtStart) && (calEvent.DtEnd <= dtEnd))
                    {
                        CalendarEventInfo eventInfo = new CalendarEventInfo(this, calEvent);
                        eventInfo.SetEventId(EventProviderHelper.MakeEventId(GetEventType(),
                                                                             (ulong)(int)eventLink.PrimaryKeyId.Value));
                        retVal.Add(eventInfo);
                    }
                }
                catch (ObjectNotFoundException)
                {
                    throw;
                }
            }

            return(retVal);
        }
예제 #2
0
파일: Calendar.cs 프로젝트: 0anion0/IBN
        /// <summary>
        /// Adds the event.
        /// </summary>
        /// <param name="eventInfoCollection">The event info collection.</param>
        /// <returns></returns>
        public EventInfoCollections AddEvent(EventInfoCollections eventInfoCollection)
        {
            EventInfoCollections retVal = new EventInfoCollections();

            foreach(CalendarEventInfo eventInfo in eventInfoCollection)
            {
              retVal.Add( AddEvent(eventInfo.EventId) );
            }

            return retVal;
        }
예제 #3
0
파일: Calendar.cs 프로젝트: alex765022/IBN
        /// <summary>
        /// Adds the event.
        /// </summary>
        /// <param name="eventInfoCollection">The event info collection.</param>
        /// <returns></returns>
        public EventInfoCollections AddEvent(EventInfoCollections eventInfoCollection)
        {
            EventInfoCollections retVal = new EventInfoCollections();

            foreach (CalendarEventInfo eventInfo in eventInfoCollection)
            {
                retVal.Add(AddEvent(eventInfo.EventId));
            }

            return(retVal);
        }
예제 #4
0
        /// <summary>
        /// Gets the event info collection.
        /// </summary>
        /// <param name="dtStart">The dt start.</param>
        /// <param name="dtEnd">The dt end.</param>
        /// <returns></returns>
        public EventInfoCollections GetEventInfoCollection(DateTime dtStart,
                                                           DateTime dtEnd)
        {
            EventInfoCollections retVal = new EventInfoCollections();

            if (_calendarId == -1)
            {
                throw new NullReferenceException("calendarId");
            }

            //querying non virtual events
            if (dtStart == DateTime.MinValue && dtEnd == DateTime.MaxValue)
            {
                return(retVal);
            }

            CalendarEvent[] calEvents = CalendarEvent.List(new FilterElement("PrimaryCalendarId",
                                                                             FilterElementType.Equal, _calendarId));

            foreach (CalendarEvent calEvent in calEvents)
            {
                CalendarEventRecurrence[] eventRecurrs = CalendarEventRecurrence.List(new FilterElement("EventId",
                                                                                                        FilterElementType.Equal, calEvent.PrimaryKeyId.Value));

                List <DateTime> eventRecurrResult = new List <DateTime>();

                foreach (CalendarEventRecurrence eventRecurr in eventRecurrs)
                {
                    List <DateTime> recurrList = GetRecurrence(eventRecurr.Rrule,
                                                               eventRecurr.Exrule,
                                                               eventRecurr.Exdate,
                                                               calEvent.DtStart, dtEnd);

                    //skip recurrence equals beginning owner calendar event
                    recurrList.Remove(calEvent.DtStart);

                    eventRecurrResult = (JoinList(eventRecurrResult, recurrList, false));
                }

                //Begin create virtual events
                foreach (DateTime eventDate in eventRecurrResult)
                {
                    retVal.Add(MakeEventInfo(eventDate, calEvent));
                }
            }

            return(retVal);
        }
예제 #5
0
        /// <summary>
        /// Gets the event info collection.
        /// </summary>
        /// <param name="dtStart">The dt start.</param>
        /// <param name="dtEnd">The dt end.</param>
        /// <returns></returns>
        public EventInfoCollections GetEventInfoCollection(DateTime dtStart, DateTime dtEnd)
        {
            EventInfoCollections retVal = new EventInfoCollections();

            if (_calendar == null)
            {
                throw new NullReferenceException("calendar");
            }

            CalendarEvent[] calEvents = CalendarEvent.List(new FilterElement("PrimaryCalendarId",
                                                                             FilterElementType.Equal, _calendar.PrimaryKeyId.Value));
            foreach (CalendarEvent calEvent in calEvents)
            {
                if ((calEvent.DtStart >= dtStart) && (calEvent.DtEnd <= dtEnd))
                {
                    CalendarEventInfo eventInfo = new CalendarEventInfo(this, calEvent);
                    eventInfo.SetEventId(EventProviderHelper.MakeEventId(GetEventType(),
                                                                         (ulong)(int)calEvent.PrimaryKeyId.Value));
                    retVal.Add(eventInfo);
                }
            }

            return(retVal);
        }
예제 #6
0
        /// <summary>
        /// Gets the event info collection.
        /// </summary>
        /// <param name="dtStart">The dt start.</param>
        /// <param name="dtEnd">The dt end.</param>
        /// <returns></returns>
        public EventInfoCollections GetEventInfoCollection(DateTime dtStart, 
                                                           DateTime dtEnd)
        {
            EventInfoCollections retVal = new EventInfoCollections();

            if (_calendarId == -1)
                throw new NullReferenceException("calendarId");

            CalendarEventLink[] eventLinks = CalendarEventLink.List(new FilterElement("CalendarId",
                                                          FilterElementType.Equal, _calendarId));

            foreach (CalendarEventLink eventLink in eventLinks)
            {
                try
                {
                    CalendarEvent calEvent = new CalendarEvent(eventLink.EventId);

                    if ((calEvent.DtStart >= dtStart) && (calEvent.DtEnd <= dtEnd))
                    {
                        CalendarEventInfo eventInfo = new CalendarEventInfo(this, calEvent);
                        eventInfo.SetEventId(EventProviderHelper.MakeEventId(GetEventType(),
                                                                             (ulong)(int)eventLink.PrimaryKeyId.Value));
                        retVal.Add(eventInfo);
                    }
                }
                catch(ObjectNotFoundException)
                {
                    throw;
                }

            }

            return retVal;
        }
예제 #7
0
        /// <summary>
        /// Gets the event info collection.
        /// </summary>
        /// <param name="dtStart">The dt start.</param>
        /// <param name="dtEnd">The dt end.</param>
        /// <returns></returns>
        public EventInfoCollections GetEventInfoCollection(DateTime dtStart, DateTime dtEnd)
        {
            EventInfoCollections retVal = new EventInfoCollections();

            if (_calendar == null)
                throw new NullReferenceException("calendar");

            CalendarEvent[] calEvents = CalendarEvent.List(new FilterElement("PrimaryCalendarId",
                                                                 FilterElementType.Equal, _calendar.PrimaryKeyId.Value));
            foreach(CalendarEvent calEvent in calEvents)
            {
                if ((calEvent.DtStart >= dtStart) && (calEvent.DtEnd <= dtEnd))
                {
                    CalendarEventInfo eventInfo = new CalendarEventInfo(this, calEvent);
                    eventInfo.SetEventId(EventProviderHelper.MakeEventId(GetEventType(),
                                                                        (ulong)(int)calEvent.PrimaryKeyId.Value));
                    retVal.Add(eventInfo);
                }
            }

            return retVal;
        }
예제 #8
0
        /// <summary>
        /// Gets the event info collection.
        /// </summary>
        /// <param name="dtStart">The dt start.</param>
        /// <param name="dtEnd">The dt end.</param>
        /// <returns></returns>
        public EventInfoCollections GetEventInfoCollection(DateTime dtStart, 
                                                           DateTime dtEnd)
        {
            EventInfoCollections retVal = new EventInfoCollections();

            if (_calendarId == -1)
                throw new NullReferenceException("calendarId");

            //querying non virtual events
            if (dtStart == DateTime.MinValue && dtEnd == DateTime.MaxValue)
                return retVal;

            CalendarEvent[] calEvents = CalendarEvent.List(new FilterElement("PrimaryCalendarId",
                                                     FilterElementType.Equal, _calendarId));

            foreach(CalendarEvent calEvent in calEvents)
            {
                CalendarEventRecurrence[] eventRecurrs = CalendarEventRecurrence.List(new FilterElement("EventId",
                                                                 FilterElementType.Equal, calEvent.PrimaryKeyId.Value));

                List<DateTime> eventRecurrResult = new List<DateTime>();

                foreach(CalendarEventRecurrence eventRecurr in eventRecurrs)
                {

                    List<DateTime> recurrList = GetRecurrence(eventRecurr.Rrule,
                                                              eventRecurr.Exrule,
                                                              eventRecurr.Exdate,
                                                              calEvent.DtStart, dtEnd);

                    //skip recurrence equals beginning owner calendar event
                    recurrList.Remove(calEvent.DtStart);

                   eventRecurrResult = (JoinList(eventRecurrResult, recurrList, false));
                }

               //Begin create virtual events
                foreach(DateTime eventDate in eventRecurrResult)
                {
                    retVal.Add(MakeEventInfo(eventDate, calEvent));
                }
            }

            return retVal;
        }