コード例 #1
0
        /// <summary>
        /// Returns a <see cref="System.String" /> that represents this instance.
        /// </summary>
        /// <returns>
        /// A <see cref="System.String" /> that represents this instance.
        /// </returns>
        public override string ToString()
        {
            if (null != _networkingEvent && null != AfternoonSession)
            {
                //By default networking event start at 04:00PM, start at 05:00PM
                //if there are any events scheduled on / after 04:00:
                _networkingEvent.StartTime = AfternoonSession.BufferDuration == Constants.DefaultBufferTime
                                                 ? Date.AddHours(16)
                                                 : Date.AddHours(17);
            }
            var stringBuilder = new StringBuilder();

            if (null != MorningSession)
            {
                stringBuilder.Append(MorningSession.ToString());
            }
            if (null == AfternoonSession || null == AfternoonSession.Talks ||
                AfternoonSession.Talks.Count == 0)
            {
                return(stringBuilder.ToString()); //Return when there is no afternoon session / talks.
            }
            if (null != _lunch)
            {
                stringBuilder.Append(_lunch.ToString()).Append(Environment.NewLine);
            }
            if (null != AfternoonSession)
            {
                stringBuilder.Append(AfternoonSession.ToString());
            }
            if (null != _networkingEvent)
            {
                stringBuilder.Append(_networkingEvent.ToString()).Append(Environment.NewLine);
            }
            return(stringBuilder.ToString());
        }
コード例 #2
0
        /// <summary>
        /// Schedules the talks for track.
        /// </summary>
        /// <param name="unscheduledTalks">The unscheduled talks.</param>
        public bool ScheduleTrack(List <ITalk> unscheduledTalks)
        {
            bool morningResult = MorningSession.ScheduleTalks(unscheduledTalks);

            if (unscheduledTalks.Count == 0)
            {
                return(morningResult);//No need to proceed if there are no talks.
            }
            bool afterNoonResult = AfternoonSession.ScheduleTalks(unscheduledTalks);

            return(morningResult && afterNoonResult);
        }
コード例 #3
0
        /// <summary>
        ///     Create the task and shedule the time
        /// </summary>
        /// <param name="programmsToBeSheduled"></param>
        /// <returns></returns>
        public List <Session> TaskSheduler(List <Session> programmsToBeSheduled)
        {
            var morningSession    = new MorningSession(MorningStartTime, MorningDuration, _sheduler);
            var sheduledProgramms = morningSession.CreateShedule(programmsToBeSheduled);

            var eveningSessionCandiates = programmsToBeSheduled.Except(sheduledProgramms).ToList();

            var eveningSession = new EveningSession(EveningStartTime, EveningDuration, _sheduler);

            sheduledProgramms.AddRange(eveningSession.CreateShedule(eveningSessionCandiates));


            return(sheduledProgramms);
        }
コード例 #4
0
 public void RemoveTalklFromMorningSession(SessionTalk talk)
 {
     MorningSession.RemoveTalk(talk);
 }
コード例 #5
0
 public bool TryAddTalkToMorningSession(SessionTalk talk)
 {
     return(MorningSession.TryAddTalk(talk));
 }
コード例 #6
0
 public TaskManager(ISheduler sheduler, MorningSession MorningSession, EveningSession eveningSession)
 {
     _sheduler       = sheduler;
     _morningSession = MorningSession;
 }