private async Task <SkillCategory> GetValidatedSkillCategory(MagusTtkSkillDefinitionDto skillDefinition, IReadOnlyRepository <SkillCategory> skillCategoryRepo, CancellationToken cancellationToken = default) { if (skillDefinition == null) { throw new ArgumentNullException(nameof(skillDefinition)); } if (skillCategoryRepo == null) { throw new ArgumentNullException(nameof(skillCategoryRepo)); } // ha nem lenne CategoryCode-ja if (string.IsNullOrWhiteSpace(skillDefinition.CategoryCode)) { throw new ArgumentException($"CategoryCode of skill definition '{skillDefinition.Code}' is empty."); } // ha nem létező SkillCategory-ra hivatkozna a skill if (!await skillCategoryRepo.TryGetByCode(skillDefinition.CategoryCode, out var skillCategory, cancellationToken)) { throw new ArgumentException($"Skill category not found with code '{skillDefinition.CategoryCode}' referenced by skill definition '{skillDefinition.Code}'."); } return(skillCategory); }
private async Task <string[]> GetValidatedSkillAbilityBase(MagusTtkSkillDefinitionDto skillDefinition, IReadOnlyRepository <AbilityDefinition> abilityRepo, CancellationToken cancellationToken = default) { if (skillDefinition == null) { throw new ArgumentNullException(nameof(skillDefinition)); } if (abilityRepo == null) { throw new ArgumentNullException(nameof(abilityRepo)); } // ha nem lenne egy ability-hez sem hozzárendelve a skill (elvileg nincsen TTK-ban ilyen) if ((skillDefinition.AbilityBase == null) || (skillDefinition.AbilityBase.Length == 0)) { // és nincs megjelölve, hogy a skill specializációjától függne if (!skillDefinition.AbilityBaseDependsOnSpecialization) { throw new ArgumentException($"AbilityBase of skill definition '{skillDefinition.Code}' is empty."); } } if (skillDefinition.AbilityBase != null) { foreach (var abilityCode in skillDefinition.AbilityBase) { // ha nem létező ability-re hivatkozna a skill if (!await abilityRepo.TryGetByCode(abilityCode, out var abilityDefinition, cancellationToken)) { throw new ArgumentException($"Ability not found with code '{abilityCode}' referenced by skill definition '{skillDefinition.Code}'."); } } } return(skillDefinition.AbilityBase); }
private string[] GetValidatedSkillSpecializations(MagusTtkSkillDefinitionDto skillDefinition) { if (skillDefinition == null) { throw new ArgumentNullException(nameof(skillDefinition)); } if (skillDefinition.Specializations != null) { foreach (var spec in skillDefinition.Specializations) { if (string.IsNullOrWhiteSpace(spec)) { throw new ArgumentException($"Empty specialization referenced by skill definition '{skillDefinition.Code}'."); } } } return(skillDefinition.Specializations); }