Пример #1
0
        /// <inheritdoc />
        public override string GetText(Appearance appearance, AppearanceComponent?component)
        {
            var character       = appearance.Character;
            var pronounProvider = _pronouns.GetPronounProvider(character);

            return(pronounProvider.GetForm(this.Form));
        }
        /// <inheritdoc />
        public async Task <ModifyEntityResult> SetCharacterPronounsAsync
        (
            Character character,
            string pronounFamily,
            CancellationToken ct = default
        )
        {
            if (pronounFamily.IsNullOrWhitespace())
            {
                return(ModifyEntityResult.FromError("You need to provide a pronoun family."));
            }

            if (character.PronounProviderFamily == pronounFamily)
            {
                return(ModifyEntityResult.FromError("The character is already using that pronoun set."));
            }

            var getPronounProviderResult = _pronouns.GetPronounProvider(pronounFamily);

            if (!getPronounProviderResult.IsSuccess)
            {
                return(ModifyEntityResult.FromError(getPronounProviderResult));
            }

            var pronounProvider = getPronounProviderResult.Entity;

            character.PronounProviderFamily = pronounProvider.Family;
            await _database.SaveChangesAsync(ct);

            return(ModifyEntityResult.FromSuccess());
        }