public int Add(TrainForCreationDto train) { try { int newId = -1; using (var sqlConnection = new SqlConnection(sqlConnectionString)) using (var sqlCommand = new SqlCommand($"EXEC ADD_TRAIN @name, @model", sqlConnection)) { var returnParameter = sqlCommand.Parameters.Add("@result", SqlDbType.Int); returnParameter.Direction = ParameterDirection.Output; sqlCommand.Parameters.AddWithValue("@name", train.Name); sqlCommand.Parameters.AddWithValue("@model", train.Model); sqlConnection.Open(); var result = sqlCommand.ExecuteScalar(); newId = Convert.ToInt32(result); } return(newId); } catch (Exception ex) { logger.LogInformation($"AddTrain DB Connection Error: {ex}"); return(-1); } }
public IActionResult CreateTrain([FromBody] TrainForCreationDto train) { if (ModelState.IsValid) { var newId = _unitOfWork.TrainRepository.Add(train); if (newId < 0) { throw new Exception("Creating a train failed on save."); } //TODO: Add AutoMapper var trainToReturn = new TrainDto { Model = train.Model, Name = train.Name, Id = newId }; return(CreatedAtRoute("GetTrain", new { id = trainToReturn.Id }, trainToReturn)); } else { return(BadRequest()); } }