コード例 #1
0
        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));
        }
コード例 #2
0
        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);
            }
        }