Example #1
0
        public List <string> AttendanceModes(ICourseSearchRequestModel requestModel)
        {
            var synonymousModes = new AttendanceMode[]
            {
                AttendanceMode.DistanceWithAttendance,
                AttendanceMode.DistanceWithoutAttendence,
                AttendanceMode.OnlineWithAttendance,
                AttendanceMode.OnlineWithoutAttendence
            };

            var attendanceModes = Enum.GetValues(typeof(AttendanceMode))
                                  .Cast <AttendanceMode>()
                                  .Where(x => IsAttendanceModeDisplayable(x))
                                  .Cast <int>()
                                  .Where(x => requestModel.AttendanceModes.Contains(x))
                                  .Cast <AttendanceMode>()
                                  .ToList();

            if (attendanceModes.Any(x => synonymousModes.Contains(x)))
            {
                foreach (var synonym in synonymousModes)
                {
                    if (!attendanceModes.Contains(synonym))
                    {
                        attendanceModes.Add(synonym);
                    }
                }
            }

            var list = new List <string>();

            foreach (var attendanceMode in attendanceModes)
            {
                list.Add(GetAttendanceModeSearchString(attendanceMode));
            }

            return(list.Count() == 6 ? new List <string>() : list);
        }