/// <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()); }
/// <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); }
/// <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); }
public void RemoveTalklFromMorningSession(SessionTalk talk) { MorningSession.RemoveTalk(talk); }
public bool TryAddTalkToMorningSession(SessionTalk talk) { return(MorningSession.TryAddTalk(talk)); }
public TaskManager(ISheduler sheduler, MorningSession MorningSession, EveningSession eveningSession) { _sheduler = sheduler; _morningSession = MorningSession; }