public async Task <ActionResult <IdiomVM> > UpdateIdiom(int id, IdiomVM idiomVM) { try { if (id != idiomVM.Idiom.Id) { return(BadRequest("Idiom ID mismatch")); } // 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)); } var idiomToUpdate = await idiomRepository.GetIdiom(id); if (idiomToUpdate == null) { return(NotFound($"Idiom with Id = {id} not found")); } await idiomRepository.UpdateIdiom(idiomVM); return(CreatedAtAction(nameof(GetIdiom), new { id = idiomVM.Idiom.Id }, idiomVM)); } catch (DbUpdateException Ex) { return(StatusCode(StatusCodes.Status500InternalServerError, Ex.InnerException.Message)); } }