public async Task <IActionResult> CreateProject([FromBody] ProjectBaseDto dto) { try { if (dto == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var exists = await _sdlcSystemAppService.CheckSdlcSystemExists(dto.SdlcSystemId); if (!exists) { return(NotFound()); } var conflict = await _projectAppService.CheckForConflicting(dto.SdlcSystemId, dto.ExternalId); if (conflict) { return(Conflict()); } var result = _projectAppService.CreateProject(dto); return(result == null?StatusCode(500, "A problem occurred while handling your request.") : CreatedAtRoute("GetProject", new { id = result.Id }, result)); } catch (Exception ex) { _log4net.Info(ex.Message, ex); return(StatusCode(500)); } }