Пример #1
0
        private bool ManageConflict(PriorityMeeting meetingRequest, PriorityMeetingCollection currentPriortyMeetings)
        {
            bool canSetupMeeting = false;

            foreach (PriorityMeeting meeting in currentPriortyMeetings)
            {
                if (meetingRequest.Priority > meeting.Priority)
                {
                    // Slice out the current meeting and replace with the new one.
                    this.PriorityMeetings.Remove(meeting);

                    this.SliceIfPossible(meetingRequest, meeting);
                    canSetupMeeting = true;
                }
            }

            return(canSetupMeeting);
        }
Пример #2
0
        public bool BookMeeting(PriorityMeeting meetingRequest)
        {
            bool canBookMeeting = false;
            PriorityMeetingCollection currentPriorityMeetings = this.PriorityMeetings.GetMeetingsByTimeRange(meetingRequest.fromDateTime, meetingRequest.toDateTime);

            bool isHigherPriority = this.PriorityMeetings.IsHigherPriorityExists(meetingRequest);

            if (!isHigherPriority)
            {
                canBookMeeting = true;
                this.PriorityMeetings.Add(meetingRequest);
            }
            else
            {
                // Manage the conflict and slice the priorities.
                canBookMeeting = this.ManageConflict(meetingRequest, currentPriorityMeetings);
            }

            return(canBookMeeting);
        }
Пример #3
0
 public PriorityCalendar()
 {
     this.PriorityMeetings = new PriorityMeetingCollection();
 }