Exemplo n.º 1
0
        static IList <TimetableRow> GetTimeTableRows(Course course)
        {
            var start         = course.StartFacultyLocal;
            int scenarioCount = 0;
            var csps          = course.CourseSlotPresenters.ToLookup(c => c.CourseSlotId);
            //var csfrs = course.CourseScenarioFacultyRoles.ToLookup(c => c.CourseSlotId);
            var csas             = course.CourseSlotActivities.ToDictionary(c => c.CourseSlotId);
            var emptyStringArray = new string[0];

            var returnVar = course.CourseFormat.CourseSlots.Where(cs => cs.IsActive)
                            .OrderBy(cs => cs.Order).Select(cs => {
                var ttr = new TimetableRow
                {
                    LocalStart    = start,
                    IsFacultyOnly = cs.FacultyOnly
                };
                CourseSlotActivity activity;
                csas.TryGetValue(cs.Id, out activity);
                if (cs.ActivityId.HasValue)
                {
                    ttr.IsScenario   = false;
                    ttr.SlotName     = cs.Activity.Name;
                    ttr.SlotActivity = activity?.Activity?.Description;
                    ttr.Faculty      = csps[cs.Id]?.Select(csp => csp.Participant.FullName)
                                       ?? emptyStringArray;
                }
                else
                {
                    ttr.IsScenario   = true;
                    ttr.SlotName     = "Scenario " + (++scenarioCount).ToString();
                    ttr.SlotActivity = activity?.Scenario?.BriefDescription;
                    ttr.Faculty      = emptyStringArray;//csfrs[cs.Id]?.Select(csfr => csfr.Participant.FullName)
                    //    ?? emptyStringArray;
                }
                start += TimeSpan.FromMinutes(cs.MinutesDuration);
                return(ttr);
            }).ToList();

            returnVar.Add(new TimetableRow {
                LocalStart = start, SlotName = "Finish", Faculty = new string[0]
            });
            return(returnVar);
        }
Exemplo n.º 2
0
        static IList<TimetableRow> GetTimeTableRows(Course course)
        {
            var start = course.StartLocal;
            int scenarioCount = 0;
            var csps = course.CourseSlotPresenters.ToLookup(c=>c.CourseSlotId);
            //var csfrs = course.CourseScenarioFacultyRoles.ToLookup(c => c.CourseSlotId);
            var csas = course.CourseSlotActivities.ToDictionary(c => c.CourseSlotId);
            var emptyStringArray = new string[0];

            var returnVar = course.CourseFormat.CourseSlots.Where(cs=>cs.IsActive)
                .OrderBy(cs=>cs.Order).Select(cs=> {
                    var ttr = new TimetableRow
                    {
                        LocalStart = start,
                    };
                    CourseSlotActivity activity;
                    csas.TryGetValue(cs.Id, out activity);
                    if (cs.ActivityId.HasValue)
                    {
                        ttr.IsScenario = false;
                        ttr.SlotName = cs.Activity.Name;
                        ttr.SlotActivity = activity?.Activity?.Description;
                        ttr.Faculty = csps[cs.Id]?.Select(csp => csp.Participant.FullName)
                            ?? emptyStringArray;
                    }
                    else
                    {
                        ttr.IsScenario = false;
                        ttr.SlotName = "Scenario " + (++scenarioCount).ToString();
                        ttr.SlotActivity = activity?.Scenario?.BriefDescription;
                        ttr.Faculty = emptyStringArray;//csfrs[cs.Id]?.Select(csfr => csfr.Participant.FullName)
                        //    ?? emptyStringArray;
                    }
                    start += TimeSpan.FromMinutes(cs.MinutesDuration);
                    return ttr;
            }).ToList();
            returnVar.Add(new TimetableRow { LocalStart = start, SlotName = "Finish", Faculty=new string[0]});
            return returnVar;
        }