public ActionResult Index(string query)
        {
            if (string.IsNullOrEmpty(query))
                return RedirectToAction("Index", "Lms");

            var model = new SearchViewModel();

            var ssm = new StudentSearchMethod();
            if (!ssm.IsIndexExist())
                ssm.AddToIndex(_studentRepository.Value.GetStudents());
            model.Students = ssm.Search(query);

            var gSearchMethod = new GroupSearchMethod();
            if (!gSearchMethod.IsIndexExist())
                gSearchMethod.AddToIndex(_groupRepository.Value.GetGroups());
            model.Groups = gSearchMethod.Search(query);

            var psm = new ProjectSearchMethod();
            if (!psm.IsIndexExist())
                psm.AddToIndex(_projectRepository.Value.GetProjects());
            model.Projects = psm.Search(query);

            var lsm = new LecturerSearchMethod();
            if (!lsm.IsIndexExist())
                lsm.AddToIndex(_lecturerRepository.Value.GetLecturers());
            model.Lecturers = lsm.Search(query);

            return View(model);
        }
        public Stream SearchGroups(string text)
        {
            if (string.IsNullOrEmpty(text))
                return null;

            var searchMethod = new GroupSearchMethod();

            if(!searchMethod.IsIndexExist())
                searchMethod.AddToIndex(_groupRepository.Value.GetGroups());

            var searchResult = searchMethod.Search(text);

            var data = new Dictionary<string, IEnumerable<Group>> { { "group", searchResult } };
            var result = new Dictionary<string, Dictionary<string, IEnumerable<Group>>> { { "data", data } };

            return GetResultStream(result);
        }