Esempio n. 1
0
        private static TemplateContext.CopyIndexState[] GetVariableIterator(ITemplateContext context, JObject value)
        {
            if (value.ContainsKey(PROPERTY_COPY))
            {
                var result = new List <TemplateContext.CopyIndexState>();

                var copyObjectArray = value[PROPERTY_COPY].Value <JArray>();
                for (var i = 0; i < copyObjectArray.Count; i++)
                {
                    var copyObject = copyObjectArray[i] as JObject;
                    var state      = new TemplateContext.CopyIndexState();
                    state.Name  = ExpandProperty <string>(context, copyObject, PROPERTY_NAME);
                    state.Input = copyObject[PROPERTY_INPUT];
                    state.Count = ExpandPropertyInt(context, copyObject, PROPERTY_COUNT);
                    context.CopyIndex.Push(state);
                    value.Remove(PROPERTY_COPY);
                    result.Add(state);
                }
                return(result.ToArray());
            }
            else
            {
                return new TemplateContext.CopyIndexState[] { new TemplateContext.CopyIndexState {
                                                                  Input = value
                                                              } }
            };
        }
Esempio n. 2
0
        /// <summary>
        /// Get a resource based iterator copy.
        /// </summary>
        private static TemplateContext.CopyIndexState GetResourceIterator(TemplateContext context, JObject value)
        {
            var result = new TemplateContext.CopyIndexState();

            result.Input = value;
            if (value.ContainsKey(PROPERTY_COPY))
            {
                var copyObject = value[PROPERTY_COPY].Value <JObject>();

                result.Name  = ExpandProperty <string>(context, copyObject, PROPERTY_NAME);
                result.Count = ExpandPropertyInt(context, copyObject, PROPERTY_COUNT);
                context.CopyIndex.Push(result);
                value.Remove(PROPERTY_COPY);
            }
            return(result);
        }