Beispiel #1
0
        public void OnSearch()
        {
            matchedTeachers = new List <Teacher>();
            IEnumerable <Subject> selectedSubjects  = GetSelectedSubsFromInput(subjects, subjectInput.text);
            IEnumerable <Faculty> selectedFaculties = new Faculty[] { faculties[facList.value] };

            bool bothGender = maleToggle.State && femaleToggle.State;
            bool isMale     = maleToggle.State && !femaleToggle.State;
            bool isFemale   = !maleToggle.State && femaleToggle.State;

            foreach (Teacher t in allTeachers)
            {
                if ((t.Rating >= ratingSlider.value || t.Rating == 0) &&
                    ((selectedSubjects.Count() == 0 || t.subjects.Select(x => x.Name).HasSameElement(selectedSubjects.Select(x => x.Name))) &&
                     (selectedFaculties.Count() == 0 || t.Faculties.HasSameElement(selectedFaculties))))
                {
                    if (bothGender)
                    {
                        matchedTeachers.Add(t);
                    }
                    else if (t.isMale && isMale)
                    {
                        matchedTeachers.Add(t);
                    }
                    else if (!t.isMale && isFemale)
                    {
                        matchedTeachers.Add(t);
                    }
                }
            }

            searchAction.Invoke(matchedTeachers.OrderByDescending(x => x.Rating));
            OnClose();
        }