public void TotaleContactUren() { var lesTabelViewModel = new LesTabelViewModel { Modules = new List <ModuleTabelViewModel> { new ModuleTabelViewModel { Contacturen = "12+1" }, new ModuleTabelViewModel { Contacturen = "12+1" }, new ModuleTabelViewModel { Contacturen = "11+1+42 + 2" } } }; var expectedData = (2 * 13) + 11 + 1 + 42 + 2; Assert.AreEqual(expectedData, lesTabelViewModel.TotaleContactUren); }
public ActionResult Index() { var vm = new StudiegidsViewModel(); foreach (var ft in _unitOfWork.GetRepository <FaseType>().GetAll()) // Geen Jaar { var maxSchooljaar = _unitOfWork.GetRepository <Schooljaar>().GetAll().Max(src => src.JaarId); var tabellenlijst = new LessenTabelViewModel { FaseType = ft.Type }; var fasems = _unitOfWork.GetRepository <FaseModules>().GetAll() .Where(src => src.FaseSchooljaar.Equals(maxSchooljaar)) .Where(src => src.Module.Status.Equals("Compleet (gecontroleerd)")) .ToList(); var fases = _unitOfWork.GetRepository <Fase>().GetAll() .Where(src => src.Schooljaar.Equals(maxSchooljaar)) .ToList(); //return CollectionA // .Join(CollectionB, // a => new { a.KeyA, a.KeyB }, // b => new { b.KeyA, b.KeyB }, // (a, b) => new { a, b }) var joined = fasems .Join(fases, a => new { fnaam = a.FaseNaam, fschooljaar = a.FaseSchooljaar, onaam = a.OpleidingNaam, oschooljaar = a.OpleidingSchooljaar }, b => new { fnaam = b.Naam, fschooljaar = b.Schooljaar, onaam = b.OpleidingNaam, oschooljaar = b.OpleidingSchooljaar }, (a, b) => new { a, b }).ToList(); foreach (var random in joined .Where(src => src.b.FaseType.Equals(tabellenlijst.FaseType)) .DistinctBy(src => new { src.a.Blok, src.a.FaseNaam }) .OrderBy(src => Math.Ceiling(Convert.ToInt32(src.a.Blok) / 2.0)) .ThenBy(src => src.a.FaseNaam) .ThenBy(src => src.a.Blok)) { var tabel = new LesTabelViewModel { Blok = random.a.Blok, FaseNaam = random.a.FaseNaam }; var rows = new List <ModuleTabelViewModel>(); foreach (var fm2 in fasems .Where(src => src.Blok.Equals(tabel.Blok)) .Where(src => src.FaseNaam.Equals(tabel.FaseNaam))) { var module = _unitOfWork.GetRepository <Module>().GetOne(new object[] { fm2.ModuleCursusCode, fm2.ModuleSchooljaar }); // if (module != null && module.Status.Equals("Compleet (gecontroleerd)")) { var row = Mapper.Map <Module, ModuleTabelViewModel>(module); rows.Add(row); } } var orderedRows = rows.OrderBy(src => src.Onderdeel).ToList(); var uniqueOnderdelen = orderedRows.Select(src => src.Onderdeel).Distinct(); foreach (var onderdeel in uniqueOnderdelen) { tabel.Onderdelen.Add(new OnderdeelTabelViewModel { Onderdeel = onderdeel }); } foreach (var module in orderedRows) { if (module.Onderdeel != null) { OnderdeelTabelViewModel onderdeelTabelViewModel = tabel.Onderdelen.FirstOrDefault(src => src.Onderdeel.Equals(module.Onderdeel)); if (onderdeelTabelViewModel != null) { onderdeelTabelViewModel.Modules.Add(module); } } } tabellenlijst.Tabellen.Add(tabel); } vm.Opleidingsfasen.Add(tabellenlijst); vm.Opleidingsfasen = vm.Opleidingsfasen.OrderBy(src => src.FaseType).ToList(); var last = vm.Opleidingsfasen.LastOrDefault(); vm.Opleidingsfasen.Remove(last); vm.Opleidingsfasen.Insert(0, last); } return(View(vm)); }