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));
        }
Example #2
0
        public IEnumerable <Module> ProcessData(IQueryablePack <Module> inputData)
        {
            var filtered = filter.Filter(inputData);
            ModuleQueryablePack toSort = new ModuleQueryablePack(inputData.Args, filtered.AsQueryable());
            var sorted = sorter.Sort(toSort);

            return(sorted);
        }
Example #3
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);
        }
Example #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 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.
        }
Example #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 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);
        }
Example #8
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());
        }
Example #9
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 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);
        }
Example #11
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));
        }
        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);
        }