public async Task <IActionResult> Edit(VerenigingEditViewModel evm, string command, int id)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Vereniging vereniging = _verenigingRepository.GetById(id);
                    if (vereniging == null)
                    {
                        return(NotFound());
                    }
                    if (command.Equals("addKleur"))
                    {
                        await MapVerenigingEditViewModelToVereniging(evm, vereniging);

                        vereniging.Kleuren.Add(new Kleur("Wit", "#ffffff"));
                        _verenigingRepository.SaveChanges();
                        return(RedirectToAction(nameof(Edit), id));
                    }
                    else if (command.Equals("removeKleur"))
                    {
                        await MapVerenigingEditViewModelToVereniging(evm, vereniging);

                        vereniging.Kleuren.RemoveAt(vereniging.Kleuren.Count - 1);
                        _verenigingRepository.SaveChanges();
                        return(RedirectToAction(nameof(Edit), id));
                    }
                    else   //when no command is given, process as normal edit
                    {
                        await MapVerenigingEditViewModelToVereniging(evm, vereniging);

                        _verenigingRepository.SaveChanges();
                        if (evm.SendMail)
                        {
                            SendMailVerenigingUpdate(vereniging);
                        }
                        TempData["message"] = $"U heeft succesvol vereniging {vereniging.GroepNaam} gewijzigd";
                    }
                }
                catch (Exception e)
                {
                    TempData["error"] = $"Sorry, er liep iets fout, de vereniging kon niet worden aangepast: {e.Message}";
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IsEdit"]    = true;
            ViewData["Konventen"] = GetKonventenAsSelectList();
            return(View(nameof(Edit), evm));
        }
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            if (!CheckValidIBAN(Input.IBAN))
            {
                ModelState.AddModelError("IBAN", "Ongeldig rekeningnummer");
                return(Page());
            }

            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            var email = await _userManager.GetEmailAsync(user);

            Vereniging vereniging = _verenigingRepository.GetByMail(email);

            if (Input.Email != email)
            {
                if (vereniging == null)
                {
                    StatusMessage = "Kon emailadres niet wijzigen, dit is geen vereniging...";
                    return(RedirectToPage());
                }

                var setEmailResult = await _userManager.SetEmailAsync(user, Input.Email);

                if (!setEmailResult.Succeeded)
                {
                    var userId = await _userManager.GetUserIdAsync(user);

                    throw new InvalidOperationException($"Unexpected error occurred setting email for user with ID '{userId}'.");
                }
                await _userManager.SetUserNameAsync(user, Input.Email);

                vereniging.Email = Input.Email;
            }

            vereniging.EmailZeden = Input.EmailZeden;
            vereniging.IBAN       = Input.IBAN;
            _verenigingRepository.SaveChanges();
            await _signInManager.RefreshSignInAsync(user);

            StatusMessage = "Your profile has been updated";
            return(RedirectToPage());
        }