/// <summary>
        /// Adds the field to table information field definition.
        /// </summary>
        /// <param name="tableInfo">
        /// The table information.
        /// </param>
        /// <param name="fieldDefArray">
        /// The field definition array.
        /// </param>
        private void AddField(TableInfo tableInfo, List <object> fieldDefArray)
        {
            if (fieldDefArray == null)
            {
                return;
            }

            var rightsValue = 0;
            var formatValue = 0;

            if (fieldDefArray.Count > 8)
            {
                rightsValue = int.Parse(fieldDefArray[8].ToString());
            }

            if (fieldDefArray.Count > 9)
            {
                formatValue = int.Parse(fieldDefArray[9].ToString());
            }

            int arrayFieldCount;

            int[] arrayFieldIndices;
            if (fieldDefArray.Count > 10)
            {
                var arrayFieldIndicesArray = (fieldDefArray[10] as JArray)?.ToObject <List <object> >();
                arrayFieldCount = arrayFieldIndicesArray?.Count ?? 0;
                if (arrayFieldCount > 0)
                {
                    arrayFieldIndices = new int[arrayFieldCount];
                    for (var i = 0; i < arrayFieldCount; i++)
                    {
                        arrayFieldIndices[i] = JObjectExtensions.ToInt(arrayFieldIndicesArray[i]);
                    }
                }
                else
                {
                    arrayFieldIndices = null;
                }
            }
            else
            {
                arrayFieldCount   = 0;
                arrayFieldIndices = null;
            }

            var fieldInfo = new FieldInfo(
                tableInfo.InfoAreaId,
                JObjectExtensions.ToInt(fieldDefArray[0]),
                (string)fieldDefArray[1],
                (string)fieldDefArray[1],
                (char)fieldDefArray[2].ToInt(),
                JObjectExtensions.ToInt(fieldDefArray[5]),
                JObjectExtensions.ToInt(fieldDefArray[3]),
                JObjectExtensions.ToInt(fieldDefArray[4]),
                JObjectExtensions.ToInt(fieldDefArray[6]),
                (string)fieldDefArray[7],
                rightsValue,
                formatValue,
                arrayFieldCount,
                arrayFieldIndices);

            tableInfo.AddFieldInfoWithOwnership(fieldInfo);
        }