예제 #1
0
        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));
        }