Ejemplo n.º 1
0
        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"));
        }
 public void Delete(IngevuldeVacature vac)
 {
     _ingevuldeVacatures.Remove(vac);
     SaveChanges();
 }
 public void Add(IngevuldeVacature vac)
 {
     _ingevuldeVacatures.Add(vac);
     SaveChanges();
 }
        public IActionResult Index(String id)
        {
            List <Double> lijst1 = new List <double>();
            List <Double> lijst2 = new List <double>();
            List <Double> lijst3 = new List <double>();

            List <String> comp1 = new List <string>();
            List <String> comp2 = new List <string>();
            List <String> comp3 = new List <string>();



            IngevuldeVacature vac = _ingevuldeVacatureRepository.GetBy(id);
            ICollection <RapportViewModel> models = new List <RapportViewModel>();

            ViewBag.naam     = vac.VoornaamSollicitant + " " + vac.AchternaamSollicitant;
            ViewBag.telefoon = vac.TelefoonSollicitant;
            ViewBag.mail     = vac.EmailSollicitant;
            ViewBag.title    = vac.Vacature.Functie;
            ViewBag.desc     = vac.Vacature.Beschrijving;
            ViewBag.datum    = vac.DatumIngevuld;
            foreach (ResponseGroup rg in vac.ResponseGroup.OrderBy(o => o.Competentie.Type).ThenBy(ol => ol.Competentie.Id))
            {
                RapportViewModel rvm = new RapportViewModel();
                rvm.CompetentieNaam = rg.Competentie.Naam;
                rvm.Verklaring      = rg.Competentie.Verklaring;
                rvm.CompetentieType = rg.Competentie.Type;
                if (rg.Competentie.Vignet != null)
                {
                    rvm.Vignet = rg.Competentie.Vignet.Naam;
                }
                else
                {
                    rvm.Vignet = "LEEG";
                }
                foreach (Response r in rg.Responses.OrderBy(r => r.Vraag.VraagVolgorde))
                {
                    AntwoordViewModel avm = new AntwoordViewModel();

                    avm.VraagStelling = r.Vraag.VraagStelling;

                    avm.Antwoord = r.Vraag.OutputString;
                    if (r.OpenAntwoord != null && r.OpenAntwoord.Trim().Length != 0)
                    {
                        avm.Antwoord = avm.Antwoord.Replace("$$", r.OpenAntwoord);
                    }
                    else
                    {
                        if (r.OptieKeuze != null)
                        {
                            if (r.OptieKeuze.Output != null && r.OptieKeuze.Output.Trim().Length != 0)
                            {
                                avm.Antwoord = avm.Antwoord.Replace("$$", r.OptieKeuze.Output);
                            }
                            else
                            {
                                avm.Antwoord = avm.Antwoord.Replace("$$", r.OptieKeuze.Input);
                            }
                        }
                        else
                        {
                            avm.Antwoord = avm.Antwoord = "LEEG";
                        }
                    }


                    /* hier moet nog gezorgd worden dat de rubric kan vergeleken worden (dus soli en bedrijf antwoorden matchen)*/
                    if (r.Vraag.type.Equals(VraagType.RUBRIC))
                    {
                        int result;
                        VacatureCompetentie temp = vac.Vacature.CompetentiesLijst.Where(c => c.Competentie.Vragen.OrderBy(co => co.VraagVolgorde).FirstOrDefault().Id.Equals(r.Vraag.Id)).FirstOrDefault();

                        if (r.OptieKeuze == null || temp.GeselecteerdeOptie == null)
                        {
                            result = 0;
                        }
                        else
                        {
                            result = r.OptieKeuze.Score <= temp.GeselecteerdeOptie.Score ? 1 : 0;
                        }

                        if (r.Vraag.Competentie.Type.Equals(CompetentieType.GRONDHOUDING))
                        {
                            lijst1.Add(result);
                            comp1.Add(r.Vraag.Competentie.Naam);
                        }
                        if (r.Vraag.Competentie.Type.Equals(CompetentieType.KENNIS))
                        {
                            lijst2.Add(result);
                            comp2.Add(r.Vraag.Competentie.Naam);
                        }
                        if (r.Vraag.Competentie.Type.Equals(CompetentieType.VAARDIGHEDEN))
                        {
                            lijst3.Add(result);
                            comp3.Add(r.Vraag.Competentie.Naam);
                        }
                    }
                    ViewBag.comp1 = comp1;
                    ViewBag.comp2 = comp2;
                    ViewBag.comp3 = comp3;
                    rvm.vms.Add(avm);
                }
                models.Add(rvm);
            }
            ICollection <Group <string, RapportViewModel> > groups = new List <Group <string, RapportViewModel> >();
            var results = models.GroupBy(m => m.CompetentieType).ToList();

            FixDonutDiagrammen(lijst1, lijst2, lijst3);


            foreach (var item in results)
            {
                groups.Add(new Group <string, RapportViewModel> {
                    Key = item.Key.ToString(), Values = item.ToList()
                });
            }
            return(View(groups));
        }