private void CheckSchedule(object o) { // Iterate the meeting list and check if any meeting need to do anythingk const double meetingTimeEpsilon = 0.0001; foreach (Meeting m in Meetings) { eMeetingEventChangeType changeType = eMeetingEventChangeType.Unkown; if (m.TimeToMeetingStart.TotalMinutes <= m.MeetingWarningMinutes.TotalMinutes) // Meeting is about to start { changeType = eMeetingEventChangeType.MeetingStartWarning; } else if (Math.Abs(m.TimeToMeetingStart.TotalMinutes) < meetingTimeEpsilon) // Meeting Start { changeType = eMeetingEventChangeType.MeetingStart; } else if (m.TimeToMeetingEnd.TotalMinutes <= m.MeetingWarningMinutes.TotalMinutes) // Meeting is about to end { changeType = eMeetingEventChangeType.MeetingEndWarning; } else if (Math.Abs(m.TimeToMeetingEnd.TotalMinutes) < meetingTimeEpsilon) // Meeting has ended { changeType = eMeetingEventChangeType.MeetingEnd; } if (changeType != eMeetingEventChangeType.Unkown) { OnMeetingChange(changeType, m); } } }
private void OnMeetingChange(eMeetingEventChangeType changeType, Meeting meeting) { var handler = MeetingEventChange; if (handler != null) { handler(this, new MeetingEventArgs() { ChangeType = changeType, Meeting = meeting }); } }