public IActionResult CreatePrize([FromBody] PrizeForCreateDto prize) { try { Thread.Sleep(2000); if (prize == null) { return(BadRequest()); } if (prize.Description == prize.Name) { ModelState.AddModelError("description", "The provided description should be different from the name."); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var prizeEntity = Mapper.Map <Prize>(prize); _prizeRepository.AddPrize(prizeEntity); if (!_prizeRepository.Save()) { return(StatusCode(500, "A problem happened while handling your request.")); } var createdPrizeDtoToReturn = Mapper.Map <PrizeDto>(prizeEntity); return(CreatedAtRoute("GetPrize", new { id = createdPrizeDtoToReturn.Id }, createdPrizeDtoToReturn)); } catch (Exception ex) { _iLogger.LogCritical("Unknown occurred during creating prize in Prize Controller", ex); return(StatusCode(500, "A problem happened while handling your request.")); } }