public async Task <ActionResult> PutAsync(string name, [FromBody] TrainerRelationship value) { try { if (value.Trainer.Name != name) { return(BadRequest()); } var entries = value.Pokémon.Select(p => new DexEntry { PokémonId = p.Id, TrainerName = value.Trainer.Name }).ToList(); await _trainerRepository.PutAsync(value.Trainer); await _dexEntryRepository.PutTrainerEntriesAsync(entries, true); return(Ok()); } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, e)); } }