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));
        }
Exemple #2
0
        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.
        }
Exemple #4
0
        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);
        }
Exemple #6
0
        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));
        }
Exemple #9
0
        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());
        }
Exemple #10
0
        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);
        }
Exemple #14
0
        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);
        }
Exemple #17
0
 /// <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));
 }
Exemple #19
0
        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));
        }