public void AddASession(TalkSession session) { if (TalkSessions == null) { TalkSessions = new List <TalkSession>(); } TalkSessions.Add(session); }
private static bool FitTalkIntoTheSession(Talk talk, TalkSession session, ref DateTime?currentSessionTime) { if (talk.Duration.DurationInTimeSpan + currentSessionTime?.TimeOfDay > session.EndTime?.TimeOfDay) { return(false); } talk.StartTime = currentSessionTime; currentSessionTime = currentSessionTime + talk.Duration.DurationInTimeSpan; session.AddATalk(talk); return(true); }
private Tuple <Track, TalkSession> AddNecessaryTrackAndSession(TalkSession currentSession, Track currentTrack) { if (currentSession.SessionType == TalkSessionType.Morning) { //if current session is morning, create an evening session and add that to the current track currentSession = CreateANewTalkSession(currentSession.StartTime.Value.Date, true); currentTrack.AddASession(currentSession); } else { //if current session is evening, create a new track and a morning session and add that session to the new track currentSession = CreateANewTalkSession(currentSession.StartTime.Value.Date); currentTrack = new Track(currentSession.StartTime.Value.Date); currentTrack.AddASession(currentSession); _conference.AddATrack(currentTrack); } return(new Tuple <Track, TalkSession>(currentTrack, currentSession)); }