public ActionResult Controle(Gebruiker gebruiker, int[] materiaal, int[] aantal, bool naarReserveren, string startDatum, string[] dagen)
        {
            //Variabelen
            bool allesBeschikbaar              = false;
            IList <Materiaal>     materialen   = new List <Materiaal>();
            Dictionary <int, int> materiaalMap = new Dictionary <int, int>();

            factory = new VerlanglijstMaterialenViewModelFactory();

            DateTime startDate = HulpMethode.GetStartDatum(startDatum);

            if (startDate < DateTime.Now)
            {
                startDate = DateTime.Today;
            }
            DateTime eindDate = HulpMethode.GetEindDatum(startDatum);

            //Indien er materialen geselecteerd zijn wordt er gekeken of er voor dat materiaal voldoende beschikbaar zijn
            //voor de gekozen periode.
            IList <DateTime> dagLijst = dagen?.Select(Convert.ToDateTime).ToList();
            var dateString            = dagLijst != null?HulpMethode.DatesToString(dagLijst) : HulpMethode.DateToString(startDate);

            if (materiaal != null)
            {
                materialen       = GeefMaterialenVanId(materiaal);
                materiaalMap     = gebruiker.GetMateriaalAantalMap(materiaal, aantal);
                allesBeschikbaar = ControleGeselecteerdMateriaal(gebruiker, materialen, aantal, startDate, eindDate, dagLijst);
            }

            var vm = factory.CreateVerlanglijstMaterialenViewModel(materialen, gebruiker.Verlanglijst.Materialen, dateString,
                                                                   startDate, eindDate, materiaalMap, allesBeschikbaar && naarReserveren, dagLijst, gebruiker) as VerlanglijstMaterialenViewModel;

            if (Request.IsAjaxRequest())
            {
                if (naarReserveren && allesBeschikbaar)
                {
                    return(PartialView("Confirmatie", vm));
                }
                return(PartialView("Verlanglijst", vm));
            }
            return(View("Index", vm));
        }