protected CalendarEvent _CreateEventFromData(System.Data.OleDb.OleDbDataReader pEventData, Boolean bRException) { try { CalendarEvent pEvent = null; int nEventID; if (pEventData.IsClosed /*|| !pEventData.HasRows*/) { return(null); } nEventID = pEventData.GetInt32(pEventData.GetOrdinal("EventID")); pEvent = m_pCalendar.DataProvider.CreateEventEx(nEventID); if (pEvent == null) { return(null); } pEvent.Subject = pEventData.GetString(pEventData.GetOrdinal("Subject")); pEvent.Location = pEventData.GetString(pEventData.GetOrdinal("Location")); pEvent.Body = pEventData.GetString(pEventData.GetOrdinal("Body")); pEvent.MeetingFlag = ToBool(pEventData.GetInt32(pEventData.GetOrdinal("IsMeeting"))); pEvent.PrivateFlag = ToBool(pEventData.GetInt32(pEventData.GetOrdinal("IsPrivate"))); pEvent.Label = pEventData.GetInt32(pEventData.GetOrdinal("LabelID")); pEvent.BusyStatus = (CalendarEventBusyStatus)pEventData.GetInt32(pEventData.GetOrdinal("BusyStatus")); pEvent.Importance = (CalendarEventImportance)pEventData.GetInt32(pEventData.GetOrdinal("ImportanceLevel")); pEvent.StartTime = pEventData.GetDateTime(pEventData.GetOrdinal("StartDateTime")); pEvent.EndTime = pEventData.GetDateTime(pEventData.GetOrdinal("EndDateTime")); pEvent.AllDayEvent = ToBool(pEventData.GetInt32(pEventData.GetOrdinal("IsAllDayEvent"))); pEvent.Reminder = ToBool(pEventData.GetInt32(pEventData.GetOrdinal("IsReminder"))); pEvent.ReminderMinutesBeforeStart = pEventData.GetInt32(pEventData.GetOrdinal("ReminderMinutesBeforeStart")); pEvent.ReminderSoundFile = pEventData.GetString(pEventData.GetOrdinal("RemainderSoundFile")); pEvent.CustomProperties.LoadFromString(pEventData.GetString(pEventData.GetOrdinal("CustomPropertiesXMLData"))); pEvent.CustomIcons.LoadFromString(pEventData.GetString(pEventData.GetOrdinal("CustomIconsIDs"))); pEvent.ScheduleID = pEventData.GetInt32(pEventData.GetOrdinal("ScheduleID")); if (bRException) { pEvent.MakeAsRException(); pEvent.RExceptionStartTimeOrig = pEventData.GetDateTime(pEventData.GetOrdinal("RExceptionStartTimeOrig")); pEvent.RExceptionEndTimeOrig = pEventData.GetDateTime(pEventData.GetOrdinal("RExceptionEndTimeOrig")); pEvent.RExceptionDeleted = ToBool(pEventData.GetInt32(pEventData.GetOrdinal("ISRecurrenceExceptionDeleted"))); } if (!bRException) { // "process_RecurrenceState" and "process_RecurrencePatternID" properties // are used to process master events. // // If they are set and RecurrenceStaie is Master Data provider will // fier DoReadRPattern event and make event as Master. // And it will also generate occurrences for RetrieveDayEvents method. // // These properties are temporary and they will be removed by data provider. // // If these properties are not set data provider expect that master event // is already compleated - CreateRecurrence method is called and // Recurrence pattern is set. // // This mechanism is useful for DB data providers, when events and patterns // are stored separately (in tables). // But if events stored in some memory collection or array // it should not be used because master event store recurrence pattern inside. pEvent.CustomProperties["process_RecurrenceState"] = pEventData.GetValue(pEventData.GetOrdinal("RecurrenceState")); pEvent.CustomProperties["process_RecurrencePatternID"] = pEventData.GetValue(pEventData.GetOrdinal("RecurrencePatternID")); } return(pEvent); } catch (System.Exception e) { System.Diagnostics.Debug.WriteLine("EXCEPTION! SQLDataHelper.CreateEventFromRS: " + e.Message); } return(null); }
public CalendarRecurrencePattern CreateRPatternFromData(System.Data.OleDb.OleDbDataReader pRPatternData, System.Data.OleDb.OleDbConnection pOleDbConn) { try { CalendarRecurrencePattern pRPattern = null; int nPatternID; if (pRPatternData.IsClosed /*|| !pRPatternData.HasRows*/) { return(null); } nPatternID = pRPatternData.GetInt32(pRPatternData.GetOrdinal("RecurrencePatternID")); pRPattern = m_pCalendar.DataProvider.CreateRecurrencePattern(nPatternID); if (pRPattern == null) { return(null); } pRPattern.MasterEventId = pRPatternData.GetInt32(pRPatternData.GetOrdinal("MasterEventID")); pRPattern.StartTime = pRPatternData.GetDateTime(pRPatternData.GetOrdinal("EventStartTime")); pRPattern.DurationMinutes = pRPatternData.GetInt32(pRPatternData.GetOrdinal("EventDuration")); pRPattern.StartDate = pRPatternData.GetDateTime(pRPatternData.GetOrdinal("PatternStartDate")); pRPattern.EndMethod = (CalendarPatternEnd)pRPatternData.GetInt32(pRPatternData.GetOrdinal("PatternEndMethod")); if (pRPattern.EndMethod == CalendarPatternEnd.xtpCalendarPatternEndDate) { pRPattern.EndDate = pRPatternData.GetDateTime(pRPatternData.GetOrdinal("PatternEndDate")); } else if (pRPattern.EndMethod == CalendarPatternEnd.xtpCalendarPatternEndAfterOccurrences) { pRPattern.EndAfterOccurrences = pRPatternData.GetInt32(pRPatternData.GetOrdinal("PatternEndAfterOccurrences")); } else { System.Diagnostics.Debug.Assert(pRPattern.EndMethod == CalendarPatternEnd.xtpCalendarPatternEndNoDate); } pRPattern.Options.Data1 = pRPatternData.GetInt32(pRPatternData.GetOrdinal("OptionsData1")); pRPattern.Options.Data2 = pRPatternData.GetInt32(pRPatternData.GetOrdinal("OptionsData2")); pRPattern.Options.Data3 = pRPatternData.GetInt32(pRPatternData.GetOrdinal("OptionsData3")); pRPattern.Options.Data4 = pRPatternData.GetInt32(pRPatternData.GetOrdinal("OptionsData4")); pRPattern.CustomProperties.LoadFromString(pRPatternData.GetString(pRPatternData.GetOrdinal("CustomPropertiesXMLData"))); pRPatternData.Close(); ReadRPatternExceptions(pRPattern, pOleDbConn); return(pRPattern); } catch (System.Exception e) { System.Diagnostics.Debug.WriteLine("EXCEPTION! SQLDataHelper.CreateRPatternFromData: " + e.Message); } return(null); }