public async Task <IActionResult> Put([FromRoute] int id, [FromBody] DTO.StrategyBase input) { var strategy = await _db.Strategies.FindAsync(id); if (strategy == null) { return(NotFound()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var existingName = await _db.Strategies .SingleOrDefaultAsync(x => x.Name == input.Name); if (existingName != null) { return(BadRequest(ModelState)); } strategy.Name = input.Name; strategy.StrategyType = input.StrategyType; await _db.SaveChangesAsync(); var result = strategy; return(Ok(result)); }
public async Task <IActionResult> Post([FromBody] DTO.StrategyBase input) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var existingName = await _db.Strategies .SingleOrDefaultAsync(x => x.Name == input.Name); if (existingName != null) { return(BadRequest(ModelState)); } var strategy = new Strategy { Name = input.Name, StrategyType = input.StrategyType, }; _db.Strategies.Add(strategy); await _db.SaveChangesAsync(); var result = strategy.MapStrategyResponse(); return(CreatedAtAction(nameof(Get), new { id = result.Id }, result)); }