/// <summary>
        /// Create a primary key entry
        /// </summary>
        /// <param name="table">Name of Table key belongs to</param>
        /// <param name="column">Column name to add ID to</param>
        /// <returns>Column Entry</returns>
        private SchemaItemObject CreatePrimaryKeyEntry(string table, string column = null)
        {
            var columname = column;

            if (columname != null)
            {
                if (columname.Substring(columname.Length - 3) == "ies")
                {
                    columname = columname.Replace("ies", "y");
                }
            }
            else
            {
                columname = table;
            }
            columname += Constants.KeySuffix;

            var row = new SchemaItemObject
            {
                ParentId          = GetParentId(table),
                TableName         = table,
                ColumnName        = columname.Replace("\n", string.Empty),
                ColumnType        = "int",
                ColumnSize        = 0,
                ColumnAttribute   = "[Key]",
                IsPrimaryKey      = true,
                IsAutoIncrement   = true,
                AllowDbNull       = false,
                IsUpdatedByNanite = true
            };

            return(row);
        }
        /// <summary>
        /// Create a Table Name entry
        /// </summary>
        /// <param name="tablename">Table Name</param>
        /// <returns>Table Entry</returns>
        private SchemaItemObject CreateTableEntry(string tablename)
        {
            var row = new SchemaItemObject
            {
                //SchemaItemId = id,
                SchemaItemId = SchemaItem.Count + 1,
                ParentId     = 0,
                TableName    = tablename,
                ColumnName   = tablename
            };

            return(row);
        }
        /// <summary>
        /// Create a Column Name Entry
        /// </summary>
        /// <param name="parentid">Parent ID column belongs to</param>
        /// <param name="tablename"></param>
        /// <param name="columnname"></param>
        /// <param name="type"></param>
        /// <param name="size"></param>
        /// <param name="attrib"></param>
        /// <param name="allownull"></param>
        /// <returns></returns>
        private SchemaItemObject CreateColumnEntry(int parentid, string tablename, string columnname, string type, int size, bool allownull = true, string attrib = null)
        {
            var row = new SchemaItemObject
            {
                ParentId          = parentid,
                TableName         = tablename,
                ColumnName        = columnname,
                ColumnType        = type,
                ColumnSize        = size,
                AllowDbNull       = allownull,
                ColumnAttribute   = attrib,
                IsChecked         = true,
                IsUpdatedByNanite = true
            };

            return(row);
        }
        /// <summary>
        /// Create a Foreign Key entry
        /// </summary>
        /// <param name="table">Name of Table key belongs to</param>
        /// <param name="primarytable">Primary Table </param>
        /// <param name="allownull"></param>
        /// <param name="attrib"></param>
        /// <returns></returns>
        private SchemaItemObject CreateForeignKeyEntry(string table, string primarytable, bool allownull = true, string attrib = null)
        {
            var foreignKey = primarytable + Constants.KeySuffix;
            var row        = new SchemaItemObject
            {
                ParentId          = GetParentId(table),
                TableName         = table,
                ColumnName        = foreignKey.Replace("\n", string.Empty),
                ColumnType        = "int",
                ColumnSize        = 0,
                ColumnAttribute   = attrib,
                AllowDbNull       = allownull,
                IsChecked         = true,
                IsForeignKey      = true,
                IsUpdatedByNanite = true
            };

            return(row);
        }