public IActionResult Vragenlijst(String id) { Vacature vac = _vacatureRepository.GetBy(id); ICollection <CompetentieViewModel> compModels = new List <CompetentieViewModel>(); foreach (Competentie comp in vac.Competenties) { ICollection <IVraag> vragen = comp.Vragen.OrderBy(v => v.VraagVolgorde).ToList(); IList <VraagViewModel> models = new List <VraagViewModel>(); foreach (IVraag vraag in vragen) { VraagViewModel res = new VraagViewModel(); res.VraagStelling = vraag.VraagStelling; res.VraagId = vraag.Id; if (vraag is VraagMeerkeuze vraagMeerkeuze) { foreach (Mogelijkheid opt in (vraagMeerkeuze).Opties) { res.Opties.Add(opt); } } if (vraag is VraagRubrics vraagRubrics) { foreach (Mogelijkheid opt in (vraagRubrics).Opties) { res.Opties.Add(opt); } } models.Add(res); } CompetentieViewModel compM = new CompetentieViewModel() { VraagViewModels = models, Vignet = comp.Vignet?.Beschrijving }; compModels.Add(compM); } ViewData["id"] = id; IList <Group <string, CompetentieViewModel> > groups = new List <Group <string, CompetentieViewModel> >(); var results = compModels.GroupBy(m => m.Vignet).ToList(); foreach (var item in results) { groups.Add(new Group <string, CompetentieViewModel> { Key = item.Key, Values = item.ToList() }); } SollicitantViewModel sol = new SollicitantViewModel() { Competenties = groups }; return(View(sol)); }
public IActionResult Submit(SollicitantViewModel model, string id) { IngevuldeVacature vac = new IngevuldeVacature(); vac.Vacature = _vacatureRepository.GetBy(id); IEnumerable <IVraag> vragen = _vacatureRepository.GetAllQuestions(); IVraag vraag = null; Mogelijkheid optie = null; ResponseGroup resgroup = null; // Todo vervangen door velden voornaam, achternaam, email en telefoon //vac.Sollicitant = (Sollicitant) _userManager.GetUserAsync(HttpContext.User).Result; vac.AchternaamSollicitant = model.Achternaam; vac.VoornaamSollicitant = model.Voornaam; vac.TelefoonSollicitant = model.TelefoonNummer; vac.EmailSollicitant = model.EmailAdres; foreach (var group in model.Competenties) { foreach (var comp in group.Values) { resgroup = new ResponseGroup(); foreach (var item in comp.VraagViewModels) { vraag = vragen.SingleOrDefault(v => v.Id.Equals(item.VraagId)); if (vraag is VraagMeerkeuze) { optie = ((VraagMeerkeuze)vraag).Opties.SingleOrDefault(c => c.Id.Equals(item.OptieKeuzeId)); resgroup.Responses.Add(new Response { Vraag = vraag, OptieKeuze = optie }); } else if (vraag is VraagRubrics) { optie = ((VraagRubrics)vraag).Opties.SingleOrDefault(c => c.Id.Equals(item.OptieKeuzeId)); resgroup.Responses.Add(new Response { Vraag = vraag, OptieKeuze = optie }); } else { resgroup.Responses.Add(new Response { OpenAntwoord = item.Redenering, Vraag = vraag }); } } resgroup.Competentie = vraag.Competentie; vac.ResponseGroup.Add(resgroup); } } _ingevuldeVacatureRepository.Add(vac); return(RedirectToAction("Index", "Home")); }