public async Task <Ability> LoadAbilityByIdAsync(int id, int versionGroup, int language, CancellationToken token) { try { string query = Queries.AbilityQuery(id, versionGroup, language); IEnumerable <DbAbility> abilities = await _connection.QueryAsync <DbAbility>(token, query, new object[0]).ConfigureAwait(false); DbAbility ability = abilities.Single(); var result = new Ability { Id = ability.Id, IngameText = ability.FlavorText, Name = ability.Name }; result.ShortDescription = await ProzessPlaceholderText(ability.ShortEffect, language, token); result.Description = await ProzessPlaceholderText(ability.Effect, language, token); result.VersionChangelog = await ProzessPlaceholderText(ability.EffectChange, language, token); return(result); } catch (Exception) { return(null); } }