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 } } }; }
/// <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); }