public ActionResult CheckModules() { var arguments = new ModuleFilterSorterArguments { LeerjaarFilter = _unitOfWork.GetRepository <Schooljaar>().GetAll().Max(src => src.JaarId) }; var maxSchooljaar = _unitOfWork.GetRepository <Schooljaar>().GetAll().Max(src => src.JaarId); var queryPack = new ModuleQueryablePack(arguments, _unitOfWork.GetRepository <Module>().GetAll().AsQueryable().Where(src => src.Schooljaar.Equals(maxSchooljaar))); var modules = _filterSorterService.ProcessData(queryPack).ToList(); var moduleList = new ModuleListViewModel(modules.Count()); moduleList.AddModules(modules); var users = _userRepository.GetAll().AsQueryable(); var userList = new UserListViewModel(users.Count()); userList.AddUsers(users); var checkModulesVm = new CheckModulesViewModel { ModuleViewModels = moduleList, Users = userList }; return(View(checkModulesVm)); }
public void testAllFilters() //Excluding the special-case generic filter { List <string> competentie = new List <string>(); competentie.Add("procesanaly"); List <string> competentieNiveau = new List <string>(); competentieNiveau.Add("ginner"); List <string> tag = new List <string>(); tag.Add("Java"); List <string> leerlijn = new List <string>(); leerlijn.Add("algo"); List <string> blokken = new List <string>(); blokken.Add("" + 3); List <string> faseNamen = new List <string>(); faseNamen.Add("Intell"); int leerjaar = 1415; List <int> EC = new List <int>(); EC.Add(3); string status = "Comple"; ModuleFilterSorterArguments args = new ModuleFilterSorterArguments { CompetentieFilters = competentie, CompetentieNiveauFilters = competentieNiveau, TagFilters = tag, LeerlijnFilters = leerlijn, BlokFilters = blokken, FaseFilters = faseNamen, LeerjaarFilter = leerjaar, ECfilters = EC, StatusFilter = status }; ModuleQueryablePack pack = new ModuleQueryablePack(args, data); IEnumerable <Module> result; result = mfs.Filter(pack); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count()); Assert.AreEqual("INMODL312345", result.First().CursusCode); }
public void testEmptySorting() { ModuleFilterSorterArguments args = new ModuleFilterSorterArguments(); ModuleQueryablePack pack = new ModuleQueryablePack(args, data); IEnumerable <Module> result; result = mss.Sort(pack); Assert.IsNotNull(result); //No need to check for count. That is not modified anywhere in this sequence. }
public void testEmptyFilter() { ModuleFilterSorterArguments args = new ModuleFilterSorterArguments(); ModuleQueryablePack pack = new ModuleQueryablePack(args, data); IEnumerable <Module> result; result = mfs.Filter(pack); Assert.IsNotNull(result); Assert.AreEqual(3, result.Count()); }
public void testModuleNaamSorting() { ModuleFilterSorterArguments args = new ModuleFilterSorterArguments(); args.SortBy = "Naam"; args.SortDesc = false; ModuleQueryablePack pack = new ModuleQueryablePack(args, data); IEnumerable <Module> result; result = mss.Sort(pack); Assert.IsNotNull(result); Assert.AreEqual("Algoritmiek 3000S", result.First().Naam); Assert.AreEqual("Programmeren 7", result.Last().Naam); }
public void testGenericFilter() { ModuleFilterSorterArguments args = new ModuleFilterSorterArguments { ZoektermFilter = "INMODL" }; ModuleQueryablePack pack = new ModuleQueryablePack(args, data); IEnumerable <Module> result; result = mfs.Filter(pack); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count()); Assert.AreEqual("INMODL312345", result.First().CursusCode); }
public override IQueryable <Module> Sort(IQueryable <Module> toSort, ModuleFilterSorterArguments args) { if (args.SortBy.Equals("Naam")) { if (args.SortDesc) { toSort = toSort.OrderByDescending(element => (element.Naam ?? "")); } else { toSort = toSort.OrderBy(element => (element.Naam ?? "")); } } return(base.Sort(toSort, args)); }
public override IQueryable <Module> Filter(IQueryable <Module> toQuery, ModuleFilterSorterArguments args) { if (args.LeerjaarFilter != null && args.LeerjaarFilter.Length > 0) { List <Module> result = new List <Module>(); var selectedModule = from m in toQuery where (m.Schooljaar ?? "").ToLower().Contains(args.LeerjaarFilter.ToLower()) select m; result.AddRange(selectedModule.Where(x => !result.Contains(x))); toQuery = result.AsQueryable(); } return(base.Filter(toQuery, args)); }
public void testCompetentieFilterSingle() //These tests were for testing the concept of the listXlist filter. (find if any string in this list contains any string from the other list) { List <string> competentie = new List <string>(); competentie.Add("procesanaly"); ModuleFilterSorterArguments args = new ModuleFilterSorterArguments { CompetentieFilters = competentie }; ModuleQueryablePack pack = new ModuleQueryablePack(args, data); IEnumerable <Module> result; result = mfs.Filter(pack); Assert.IsNotNull(result); Assert.AreEqual(2, result.Count()); }
public void testCompetentieFilterMulti() //These tests were for testing the concept of the listXlist filter. { List <string> competentie = new List <string>(); competentie.Add("procesanaly"); competentie.Add("vernietigen"); ModuleFilterSorterArguments args = new ModuleFilterSorterArguments { CompetentieFilters = competentie }; ModuleQueryablePack pack = new ModuleQueryablePack(args, data); IEnumerable <Module> result; result = mfs.Filter(pack); Assert.IsNotNull(result); Assert.AreEqual(3, result.Count()); }
public ActionResult Curriculum() { var schooljaren = _unitOfWork.GetRepository <Schooljaar>().GetAll().ToArray(); var laatsteSchooljaar = schooljaren.Last(); var arguments = new ModuleFilterSorterArguments { }; /*var queryPack = new ModuleQueryablePack(arguments, _unitOfWork.GetRepository<Module>().GetAll().AsQueryable()); * var modules = _filterSorterService.ProcessData(queryPack).ToList(); * var moduleList = new ModuleListViewModel(modules.Count()); * moduleList.AddModules(modules);*/ var competenties = _unitOfWork.GetRepository <Competentie>().GetAll().Where(x => x.Schooljaar == laatsteSchooljaar.JaarId).ToArray(); var leerlijnen = _unitOfWork.GetRepository <Leerlijn>().GetAll().Where(x => x.Schooljaar == laatsteSchooljaar.JaarId).ToArray(); var tags = _unitOfWork.GetRepository <Tag>().GetAll().Where(x => x.Schooljaar == laatsteSchooljaar.JaarId).ToArray(); var fases = _unitOfWork.GetRepository <Fase>().GetAll().Where(x => x.Schooljaar == laatsteSchooljaar.JaarId).ToArray(); var onderdelen = _unitOfWork.GetRepository <Onderdeel>().GetAll().ToArray(); var blokken = _unitOfWork.GetRepository <Blok>().GetAll().ToArray(); var modules = _unitOfWork.GetRepository <Module>().GetAll().Where(x => x.Schooljaar == laatsteSchooljaar.JaarId).ToArray(); var filterOptions = new FilterOptionsViewModel(); filterOptions.AddFases(fases); filterOptions.AddBlokken(blokken); var adminCurriculumVm = new AdminCurriculumViewModel { Competenties = competenties, Leerlijn = leerlijnen, Tags = tags, Fases = fases, //ModuleViewModels = moduleList, FilterOptions = filterOptions, Onderdeel = onderdelen, Modules = modules }; return(View(adminCurriculumVm)); }
public override IQueryable <Module> Filter(IQueryable <Module> toQuery, ModuleFilterSorterArguments args) { if (args.ECfilters != null && args.ECfilters.Count > 0) { List <Module> result = new List <Module>(); foreach (int arg in args.ECfilters) { var selectedModule = from m in toQuery where m.StudiePunten.Select(element => element.EC).Contains((decimal)arg) select m; result.AddRange(selectedModule.Where(x => !result.Contains(x))); } toQuery = result.AsQueryable(); } return(base.Filter(toQuery, args)); }
public void TestFilterSorterCombo() { ModuleFilterSorterArguments args = new ModuleFilterSorterArguments(); args.SortBy = "Naam"; args.SortDesc = true; List <string> tags = new List <string>(); tags.Add("C#"); args.TagFilters = tags; ModuleQueryablePack toProcess = new ModuleQueryablePack(args, data); var processed = mfss.ProcessData(toProcess); Assert.IsNotNull(processed); Assert.AreEqual(2, processed.Count()); Assert.AreEqual("Algoritmiek 3000S", processed.Last().Naam); Assert.AreEqual("Programmeren 7", processed.First().Naam); }
public override IQueryable <Module> Filter(IQueryable <Module> toQuery, ModuleFilterSorterArguments args) { if (args.ZoektermFilter != null && args.ZoektermFilter.Length > 0) { toQuery = from m in toQuery where ( (m.Beschrijving ?? "").Contains(args.ZoektermFilter.ToLower()) || (m.CursusCode ?? "").ToLower().Contains(args.ZoektermFilter.ToLower()) || (from d in m.Docent select(d.Name ?? "").ToLower()).Contains(args.ZoektermFilter.ToLower()) || (from l in m.Leerdoelen select(l.Beschrijving ?? "").ToLower()).Contains(args.ZoektermFilter.ToLower()) || (from l in m.Leerdoelen select(l.CursusCode ?? "").ToLower()).Contains(args.ZoektermFilter.ToLower()) || (from l in m.Leerlijn select(l.Naam ?? "").ToLower()).Contains(args.ZoektermFilter.ToLower()) || (from lm in m.Leermiddelen select(lm.Beschrijving ?? "").ToLower()).Contains(args.ZoektermFilter.ToLower()) || (from lm in m.Leermiddelen select(lm.CursusCode ?? "").ToLower()).Contains(args.ZoektermFilter.ToLower()) || (m.Naam ?? "").ToLower().Contains(args.ZoektermFilter.ToLower()) || (from t in m.Tag select(t.Naam ?? "").ToLower()).Contains(args.ZoektermFilter.ToLower()) || (m.Verantwoordelijke ?? "").ToLower().Contains(args.ZoektermFilter.ToLower()) ) select m; } return(base.Filter(toQuery, args)); }
public override IQueryable <Module> Filter(IQueryable <Module> toQuery, ModuleFilterSorterArguments args) { if (args.CompetentieFilters != null && args.CompetentieFilters.Count > 0) { List <Module> result = new List <Module>(); foreach (string arg in args.CompetentieFilters) { var selectedModule = from m in toQuery where m.ModuleCompetentie.Any( element => (element.Competentie.Naam ?? "").ToLower().Contains((arg ?? "").ToLower()) ) select m; result.AddRange(selectedModule.Where(x => !result.Contains(x))); } toQuery = result.AsQueryable(); } return(base.Filter(toQuery, args)); }
public ModuleListViewModel GetOverview([FromBody] ArgumentsViewModel value) { var modules = _unitOfWork.GetRepository <Module>().GetAll(); ICollection <string> competentieFilters = null; if (value.Filter.Competenties.First() != null) { competentieFilters = value.Filter.Competenties; } ICollection <string> tagFilters = null; if (value.Filter.Tags.First() != null) { tagFilters = value.Filter.Tags; } ICollection <string> leerlijnFilters = null; if (value.Filter.Leerlijnen.First() != null) { leerlijnFilters = value.Filter.Leerlijnen; } ICollection <string> faseFilters = null; if (value.Filter.Fases.First() != null) { faseFilters = value.Filter.Fases; } ICollection <string> blokFilters = null; if (value.Filter.Blokken.First() != null) { blokFilters = value.Filter.Blokken.ToArray(); } string zoektermFilter = null; if (value.Filter.Zoekterm != null) { zoektermFilter = value.Filter.Zoekterm; } string leerjaarFilter = null; if (value.Filter.Leerjaar != null) { leerjaarFilter = value.Filter.Leerjaar; } int column = value.OrderBy.Column; string columnName; switch (column) { case 1: columnName = "Naam"; break; case 2: columnName = "CursusCode"; break; case 3: columnName = "Schooljaar"; break; case 7: columnName = "Verantwoordelijke"; break; default: columnName = "Naam"; break; } bool dir; if (value.OrderBy.Dir == "desc") { dir = true; } else { dir = false; } var arguments = new ModuleFilterSorterArguments { CompetentieFilters = competentieFilters, TagFilters = tagFilters, LeerlijnFilters = leerlijnFilters, FaseFilters = faseFilters, BlokFilters = blokFilters, ZoektermFilter = zoektermFilter, LeerjaarFilter = leerjaarFilter, SortBy = columnName, SortDesc = dir }; var queryPack = new ModuleQueryablePack(arguments, modules.AsQueryable()); modules = _filterSorterService.ProcessData(queryPack); var enumerable = modules as Module[] ?? modules.ToArray(); var modArray = enumerable.ToArray().Where(m => m.Status.Equals("Compleet (gecontroleerd)")); if (User.Identity.IsAuthenticated) { modArray = enumerable.ToArray(); } var moduleList = modArray as Module[] ?? modArray.ToArray(); var moduleListVm = new ModuleListViewModel(moduleList.Count()); moduleListVm.AddModules(moduleList); return(moduleListVm); }
/// <summary> /// Passively returns any data it gets. /// </summary> /// <param name="toQuery">The input data</param> /// <param name="args">Apliccable arguments</param> /// <returns>The returned data</returns> public IQueryable <Module> Filter(IQueryable <Module> toQuery, ModuleFilterSorterArguments args) { return(toQuery); }
/// <summary> /// The base function that will filter per argument /// </summary> /// <param name="toQuery">The data that will be queried</param> /// <param name="args">The applied arguments</param> /// <returns>The queried data</returns> public virtual IQueryable <Module> Filter(IQueryable <Module> toQuery, ModuleFilterSorterArguments args) { return(parent.Filter(toQuery, args)); }
public ActionResult ExportAllModules(ExportArgumentsViewModel value) { var modules = _unitOfWork.GetRepository <Module>().GetAll(); if (!User.Identity.IsAuthenticated) { modules = modules.Where(element => element.Status.Equals("Compleet (gecontroleerd)")); } ICollection <string> competentieFilters = null; if (value.Filters.Competenties.First() != null) { competentieFilters = value.Filters.Competenties; } ICollection <string> tagFilters = null; if (value.Filters.Tags.First() != null) { tagFilters = value.Filters.Tags; } ICollection <string> leerlijnFilters = null; if (value.Filters.Leerlijnen.First() != null) { leerlijnFilters = value.Filters.Leerlijnen; } ICollection <string> faseFilters = null; if (value.Filters.Fases.First() != null) { faseFilters = value.Filters.Fases; } ICollection <string> blokFilters = null; if (value.Filters.Blokken.First() != null) { blokFilters = value.Filters.Blokken; } string zoektermFilter = null; if (value.Filters.Zoekterm != null) { zoektermFilter = value.Filters.Zoekterm; } string leerjaarFilter = null; if (value.Filters.Leerjaar != null) { leerjaarFilter = value.Filters.Leerjaar; } var arguments = new ModuleFilterSorterArguments { CompetentieFilters = competentieFilters, TagFilters = tagFilters, LeerlijnFilters = leerlijnFilters, FaseFilters = faseFilters, BlokFilters = blokFilters, ZoektermFilter = zoektermFilter, LeerjaarFilter = leerjaarFilter }; var queryPack = new ModuleQueryablePack(arguments, modules.AsQueryable()); modules = _filterSorterService.ProcessData(queryPack); var exportArguments = new ModuleExportArguments { ExportCursusCode = value.Export.CursusCode, ExportNaam = value.Export.Naam, ExportBeschrijving = value.Export.Beschrijving, ExportAlgInfo = value.Export.AlgemeneInformatie, ExportStudieBelasting = value.Export.Studiebelasting, ExportOrganisatie = value.Export.Organisatie, ExportWeekplanning = value.Export.Weekplanning, ExportBeoordeling = value.Export.Beoordeling, ExportLeermiddelen = value.Export.Leermiddelen, ExportLeerdoelen = value.Export.Leerdoelen, ExportCompetenties = value.Export.Competenties, ExportLeerlijnen = value.Export.Leerlijnen, ExportTags = value.Export.Tags }; var exportablePack = new ModuleExportablePack(exportArguments, modules); BufferedStream fStream = _moduleExporterService.ExportAllAsStream(exportablePack); string expByName = User.Identity.Name; if (expByName == null || expByName.Equals("")) { expByName = "download"; } string saveTo = DateTime.Now.ToString("yyyy-MM-dd") + "_" + expByName; Session[saveTo] = fStream; //Return the filename under which you can retrieve it from Session data. //Ajax/jQuery will then parse that string, and redirect to /Module/Export/All/{saveTo} //This redirect will be caught in the controller action below here. return(Json(saveTo)); }