예제 #1
0
        public async Task <IHttpActionResult> Post(CampViewModel campViewModel)
        {
            if (await _repository.ExistsCampAsync(campViewModel.Moniker))
            {
                ModelState.AddModelError("campViewModel.Moniker", "The moniker is already is use, please choose a new one.");
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var camp = _mapper.Map <Camp>(campViewModel);

            await _repository.AddCampAsync(camp);

            await _repository.SaveChangesAsync();

            var createdCampViewModel = _mapper.Map <CampViewModel>(camp);

            return(CreatedAtRoute("GetCamp", new { moniker = createdCampViewModel.Moniker }, createdCampViewModel));
        }