コード例 #1
0
        private void ArrangeConferencePhase(ConferencePhase phase, List <Activity> activities)
        {
            if (phase == null)
            {
                return;
            }

            if (activities == null || !activities.Any())
            {
                return;
            }

            while (phase.RemainedMinutes > 0)
            {
                var activity = activities.FirstOrDefault();
                if (!phase.IsEnoughToAddActivity(activity))
                {
                    activity = activities.FirstOrDefault(x => x.GetDuration() < phase.RemainedMinutes);
                }
                if (activity != null)
                {
                    phase.AddActivity(activity);
                    activities.Remove(activity);
                }
                else
                {
                    break;
                }
            }
        }
コード例 #2
0
        protected void RenderConferencePhase(ConferencePhase phase, int minutes, string timeSuffix)
        {
            if (phase == null)
            {
                return;
            }

            foreach (var slot in phase.Slots)
            {
                var hour     = minutes / 60;
                var minute   = minutes % 60;
                var timeSpan = new TimeSpan(hour, minute, 0);
                RenderSlot(slot, timeSpan, timeSuffix);
                minutes += (int)slot.Duration;
            }
        }