Exemple #1
0
        /// <summary>
        /// Defines a child block of tokens.
        /// </summary>
        /// <typeparam name="TChild"></typeparam>
        /// <param name="children"></param>
        /// <param name="identifier"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public ITokenBlock <TModel, TChild> Block <TChild>(Func <TModel, IEnumerable <TChild> > children, string identifier, Action <ITokenRoot <TChild> > context)
        {
            Ensure.ArgumentNotNull(children, "children");
            Ensure.ArgumentNotNullOrEmpty(identifier, "identifier");
            Ensure.ArgumentNotNull(context, "context");

            var builder = new TokenBuilder <TChild>();

            context(builder);
            return(Block(children, identifier, builder));
        }
Exemple #2
0
        /// <summary>
        /// Defines a child conditional token for replacement.
        /// </summary>
        /// <typeparam name="TChild"></typeparam>
        /// <param name="replacement"></param>
        /// <param name="identifier"></param>
        /// <param name="condition"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public IConditionalToken <TModel, TChild> TokenizeIf <TChild>(Func <TModel, TChild> replacement, string identifier, Func <TModel, bool> condition, Action <ITokenRoot <TChild> > context)
        {
            Ensure.ArgumentNotNull(replacement, "replacement");
            Ensure.ArgumentNotNullOrEmpty(identifier, "identifier");
            Ensure.ArgumentNotNull(condition, "condition");
            Ensure.ArgumentNotNull(context, "context");

            var builder = new TokenBuilder <TChild>();

            context(builder);
            return(TokenizeIf(replacement, identifier, condition, builder));
        }