Example #1
0
        /// <summary>Get all possible values of a tokenable string.</summary>
        /// <param name="tokenable">The tokenable string.</param>
        /// <param name="conditions">The conditions for which to filter permutations.</param>
        public IEnumerable <string> GetPossibleStrings(TokenString tokenable, ConditionDictionary conditions)
        {
            // no tokens: return original string
            if (!tokenable.ConditionTokens.Any())
            {
                yield return(tokenable.Raw);

                yield break;
            }

            // yield token permutations
            foreach (IDictionary <ConditionKey, string> permutation in this.GetApplicablePermutationsForTheseConditions(tokenable.ConditionTokens, conditions))
            {
                yield return(tokenable.GetStringWithTokens(permutation));
            }
        }