Esempio n. 1
0
        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));
        }