public async Task <IHttpActionResult> PutCodeCamp(string moniker, CodeCampModel codeCampModel) { try { if (await _codeCampService.GetCodeCamp(moniker) == null) { return(NotFound()); } // if moniker changed then new moniker unique check if (!string.Equals(moniker, codeCampModel.Moniker) && await _codeCampService.GetCodeCamp(codeCampModel.Moniker) != null) { ModelState.AddModelError("Moniker", "Moniker should be unique"); } if (ModelState.IsValid) { var createdModel = await _codeCampService.UpdateCodeCamp(moniker, codeCampModel); return(CreatedAtRoute("GetCodeCamp", new { moniker = createdModel.Moniker }, createdModel)); } } catch (Exception exception) { Logger.Error(exception); return(InternalServerError(exception)); } return(BadRequest(ModelState)); }