public async Task <IActionResult> Create([Bind("CategorieId,Omschrijving")] Categorie categorie) { await PerformExtraValidationsAsync(categorie); if (ModelState.IsValid) { _categorieenService.Add(categorie); await _categorieenService.SaveChangesAsync(); return(RedirectToAction(nameof(Details), new { id = categorie.CategorieId })); } return(View(categorie)); }
private (Categorie categorie, List <string> errorMessages) FindOrImportCategorie(IList <Categorie> categorieen, string omschrijving) { var errorMessages = new List <string>(); if (string.IsNullOrWhiteSpace(omschrijving)) { //Geen categorie, vinden of importeren niet nodig return(null, errorMessages); } var categorie = categorieen.FirstOrDefault(r => r.Omschrijving.Equals(omschrijving, StringComparison.InvariantCultureIgnoreCase)); if (categorie != null) { return(categorie, errorMessages); } //Niet gevonden, importeren categorie = new Categorie { Omschrijving = omschrijving }; var validationResults = new List <ValidationResult>(); Validator.TryValidateObject(categorie, new ValidationContext(categorie, null, null), validationResults, true); foreach (var validationResult in validationResults) { errorMessages.Add($"Categorie '{categorie.Omschrijving}' is ongeldig, {validationResult.ErrorMessage}"); } if (errorMessages.Any()) { return(null, errorMessages); } else { _categorieenService.Add(categorie); categorieen.Add(categorie); return(categorie, errorMessages); } }