public async Task <ActionResult <IdiomVM> > CreateIdiom(IdiomVM idiomVM) { try { if (idiomVM == null) { return(BadRequest()); } // Add custom model validation error Idiom idiom = await idiomRepository.GetIdiomByname(idiomVM.Idiom); if (idiom != null) { ModelState.AddModelError("Name", $"Idiom name: {idiomVM.Idiom.Text} already in use"); return(BadRequest(ModelState)); } await idiomRepository.CreateIdiom(idiomVM); return(CreatedAtAction(nameof(GetIdiom), new { id = idiomVM.Idiom.Id }, idiomVM)); } catch (DbUpdateException Ex) { return(StatusCode(StatusCodes.Status500InternalServerError, Ex.InnerException.Message)); } }