Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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());
            }
        }