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