public void Post([FromBody] PlayerAddRequest players) { if (ModelState.IsValid) { playerRepository.Add(players); } }
// GetSettings.EdFootballConnectionString public async void Add(PlayerAddRequest model) { await using (var con = new SqlConnection(GetSettings.EdFootballConnectionString)) { var par = new DynamicParameters(); par.Add("@Firstname", model.Firstname); par.Add("@Lastname", model.Lastname); await con.ExecuteAsync(QueryString.AddPlayer, par, commandType : CommandType.StoredProcedure); } }
[ValidateNewPlayer] // Perform new Player validations (Validators\ValidateNewPlayer.cs) public async Task <IActionResult> Add([FromBody] PlayerAddRequest model) { // at this point model has been validated var newPlayer = _mapper.Map <Player>(model); newPlayer.Active = true; // set initial status of player to Active // ReSharper disable once MethodHasAsyncOverload // AddAsync() overload has special use-case for client-side HiLo generated PKs _db.Players.Add(newPlayer); // Save Unit-of-Work // do not handle exceptions here to let other // services know we failed and they need to retry await _db.SaveChangesAsync(); // TODO: More structured logging with NLog _logger.LogInformation($@">>> PlayerController.Add() success - Id ""{model.TransactionId}"", Name ""{model.PlayerName}""."); var result = _mapper.Map <Player, PlayerModelResponse>(newPlayer); return(Created($"/v1/{ControllerContext.ActionDescriptor.ControllerName}/{model.TransactionId}", result)); }