public IDataDefinition Clone()
 {
     return(new RepeatDataDefinition {
         NamingOffset = NamingOffset,
         RepeatCount = RepeatCount,
         RepeatedDefinition = RepeatedDefinition.Clone()
     });
 }
 public JObject ToJson()
 {
     return(new JObject {
         ["type"] = "repeat",
         ["count"] = RepeatCount,
         ["definition"] = RepeatedDefinition.ToJson()
     });
 }
        public Type GetValueType(int index)
        {
            if (index < 0 || index >= Length)
            {
                throw new ArgumentOutOfRangeException("index");
            }

            var innerIndex = index % RepeatedDefinition.Length;

            return(RepeatedDefinition.GetValueType(innerIndex));
        }
        public object Convert(IDataRow row, object value, int index)
        {
            if (index < 0 || index >= Length)
            {
                throw new ArgumentOutOfRangeException("index");
            }

            var innerIndex = index % RepeatedDefinition.Length;

            return(RepeatedDefinition.Convert(row, value, innerIndex));
        }
        public string GetName(int index)
        {
            if (index < 0 || index >= Length)
            {
                throw new ArgumentOutOfRangeException("index");
            }

            var repeatNr   = index / RepeatedDefinition.Length;
            var innerIndex = index % RepeatedDefinition.Length;

            var baseName = RepeatedDefinition.GetName(innerIndex);

            return(string.Format("{0}[{1}]", baseName, repeatNr + NamingOffset));
        }
 public void ResolveReferences(SheetDefinition sheetDef)
 {
     RepeatedDefinition.ResolveReferences(sheetDef);
 }