Esempio n. 1
0
        public IActionResult Create(ClientViewModel cltVM)
        {
            if (!ModelState.IsValid)
            {
                // Geef de ViewModel terug:

                // Opmerking: onderstaande werkt niet.
                // "FirstNameChanged" komt niet in het scherm.
                // Je kan bij return View(xxx) geen nieuwe veldwaarden meegeven
                cltVM.Client.FirstName = "FirstNamechanged";

                // Geef de lijst van landen weer terug aan de view
                // Zo niet, dan klapt de applicatie en werkt de dropdownlist niet
                cltVM.Countries = _countryManager.GetAllCountries(); // deze werkt wel
                // Idem voor de andere drop down lijsten
                CreateListOfZodiacs(cltVM);                          // cltVM is call by reference
                CreateListOfSportTypes(cltVM);                       // cltVM is call by reference

                return(View(cltVM));
            }

            // Check hier de velden op correcte invoer (complexer)
            // Stop met valideren bij de eerste gevonden fout


            string errMsg = ErrorCheck.CheckForErrors(cltVM);

            if (errMsg != null) // Specifieke fout gevonden
            {
                ModelState.AddModelError(string.Empty, errMsg);

                // Opmerking: onderstaande werkt niet.
                // "LastNameChanged" komt niet in het scherm.
                // Je kan bij return View(xxx) geen nieuwe veldwaarden meegeven
                cltVM.Client.LastName = "LastNamechanged";

                // Geef de lijst van landen weer terug aan de view
                // Zo niet, dan klapt de applicatie en werkt de dropdownlist niet
                cltVM.Countries = _countryManager.GetAllCountries();
                return(View(cltVM));
            }

            // Zet cltVM.ZodiacId (is een int, die geselecteerd is in het scherm) over naar cltVM.Client.AstrologyZodiacSign
            // Zet cltVM.TypeOfSporter (is een int, die geselecteerd is in het scherm) over naar cltVM.Client.TypeOfSporter
            var zodiacSign = (AstrologyZodiacSign)cltVM.ZodiacId;

            cltVM.Client.AstrologyZodiacSign = zodiacSign.ToString();

            var sportType = (SportType)cltVM.SportTypeId;

            cltVM.Client.TypeOfSporter = sportType.ToString();

            var clt = cltVM.ToClient();

            // clt.Id: geen waarde geven bij Create
            clt.DoctorId   = 1; // NTD idereen krijgt doctor 1: de doctor die inlogt bepaalt deze waarde
            clt.ActionCode = 'A';

            // Pas hier het clientnummer aan
            clt.ClientNumber = _clientManager.GetAndUpdateCurrentClientNumber();
            _clientManager.AddClient(clt);

            return(RedirectToAction("Index", new
            {
                doctorId = cltVM.Client.DoctorId
            }));
        }