private void RemoveDomain(DataDomain domain)
        {
            if (domain.Entities.Length != 0)
            {
                if (MessageBox.Show(domain.Entities.Length.ToString() + " " + (domain.Entities.Length == 1 ? "entity" : "entities") + " exists within this namespace and will removed from scope." + Environment.NewLine + "No further code will be generated for " + (domain.Entities.Length == 1 ? "this entity" : "these entities") + "." + Environment.NewLine + Environment.NewLine + "Are you sure you want to continue?", "Remove Namespace", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
                {
                    return;
                }
            }

            // Remove the entities from the domain
            List <DataEntity> entities = domain.Entities.ToList();

            entities.ForEach(entity => entity.CodeDomain = null);
            entities.ForEach(entity => entity.Save());

            // Remove the entities from the domain tree
            foreach (TreeNode entity in this.DomainTree.SelectedNode.Nodes)
            {
                this.AddTreeNode(this.RootNode.Nodes, entity);
            }

            // Remove the domain from the database
            this.DomainTree.SelectedNode.Remove();
            domain.Name = null;
            domain.Save();

            // Refresh the current database
            this.CurrentDatabase.Refresh();
        }
Esempio n. 2
0
        void createGraph(DataDomain domain)
        {
            var name = domain.ToString();

            if (!mGraph.ContainsKey(domain) || mGraph[domain].IsDisposed)
            {
                //var g = new WdmGraph();
                var g = new GraphForm();
                mGraph[domain]  = g;
                g.Name          = name;
                g.Text          = name;
                g.StartPosition = FormStartPosition.Manual;
                g.Location      = mGraphLocation[domain];
                g.Size          = mGraphSize[domain];
                g.FormClosing  += (s, e) =>
                {
                    if (g.WindowState == FormWindowState.Normal)
                    {
                        mGraphLoader[domain].Invoke(g);
                    }
                };
            }

            mGraph[domain].Show();
        }
Esempio n. 3
0
 public void AddDataDomain(DataDomain dataDomain)
 {
     if (!Contains(dataDomain))
     {
         _dataDomains = ArrayUtils.Resize(_dataDomains, _dataDomains.Length + 1) as DataDomain[];
         _dataDomains[_dataDomains.Length - 1] = dataDomain;
     }
 }
Esempio n. 4
0
 public ProductRepository(IOptions <Settings> settings) : base(settings)
 {
     _dataDomain = base.GetDataDomain();
     if (_dataDomain == null)
     {
         _dataDomain = new DataDomain();
     }
 }
Esempio n. 5
0
        public IEnumerable <double> Aggregate(string variable, Array prefetchedData, DataDomain prefetchDataDomain, IEnumerable <ICellRequest> cells)
        {
            Stopwatch calcSw = Stopwatch.StartNew();

            ts.TraceEvent(TraceEventType.Start, 3, "Integration started");
            double[] result = IntegrateBatch(variable, prefetchedData, prefetchDataDomain.Origin, PrepareIPsForCells(variable, cells)).ToArray();
            calcSw.Stop();
            ts.TraceEvent(TraceEventType.Stop, 3, string.Format("Integration took {0}. {1} values produced", calcSw.Elapsed, result.Length));
            return(result);
        }
 public void InsertDataDomain(DataDomain dataDomain)
 {
     if (GetDataDomain() == null)
     {
         DataDomainCollection.InsertOne(dataDomain);
     }
     else
     {
         UpdateDataDomain(dataDomain);
     }
 }
Esempio n. 7
0
 public bool Contains(DataDomain dataDomain)
 {
     foreach (DataDomain dataDomainTmp in _dataDomains)
     {
         if (dataDomainTmp.DomainUrl.Url == dataDomain.DomainUrl.Url)
         {
             return(true);
         }
     }
     return(false);
 }
Esempio n. 8
0
        public DataAssembler CreateDataAssembler(string url, string query)
        {
            DataDomain    dataDomain    = GetDataDomain(url);
            DataAssembler dataAssembler = DataAssembler.FromQuery(dataDomain, query);

            if (dataAssembler != null)
            {
                AddDataAssembler(dataAssembler);
            }
            return(dataAssembler);
        }
        private void AddTreeNode(TreeNodeCollection collection, DataDomain domain)
        {
            TreeNode node = new TreeNode();

            node.Name               = domain.Identifier;
            node.Text               = domain.Name;
            node.ImageIndex         = 0;
            node.SelectedImageIndex = 0;
            node.Tag = domain;

            this.AddTreeNode(collection, node);
        }
Esempio n. 10
0
        public DataDomain RemoveDataDomain(string url)
        {
            Project project = GetProject() as Project;

            if (project != null)
            {
                DataDomain dataDomain = project.GetDataDomain(url);
                project.RemoveDataDomain(url);
                return(dataDomain);
            }
            return(null);
        }
Esempio n. 11
0
        private void DomainRemoveButton_Click(Object sender, EventArgs e)
        {
            DataDomain domain = this.DomainTree.SelectedNode.Tag as DataDomain;

            this.DomainNameTextbox.Text = domain.Identifier;
            this.RemoveDomain(domain);
            this.DomainTree.Focus();

            this.EntityDomainDropdown.Items.Clear();
            this.EntityDomainDropdown.Items.Add(new { Name = "" });
            this.EntityDomainDropdown.Items.AddRange(this.CurrentDatabase.Domains);
            this.EntityDomainDropdown.DisplayMember = "Name";
        }
Esempio n. 12
0
 public static Driver GetDriver(DataDomain dataDomain)
 {
     switch (dataDomain.DomainUrl.Protocol)
     {
         case "msaccess":
             return new Access.AccessDriver(dataDomain.DomainUrl);
         case "mssql":
             return new MSSql.MSSqlDriver(dataDomain.DomainUrl);
         case "mysql":
             return new MySql.MySqlDriver(dataDomain.DomainUrl);
         default:
             return null;
     }
 }
Esempio n. 13
0
        public Project ConnectToDatabase(string name, string url)
        {
            Project project = GetProject() as Project;

            if (project != null)
            {
                DomainUrl     domainUrl  = new DomainUrl(url);
                DomainBuilder builder    = DomainBuilderFactory.GetDomainBuilder(domainUrl);
                DataDomain    dataDomain = builder.BuildDomain();
                dataDomain.Name = name;
                project.AddDataDomain(dataDomain);
                return(project);
            }
            return(null);
        }
Esempio n. 14
0
        void setupArray(DataDomain domain, string[] chs, double delta, int numDp)
        {
            var isTime   = domain == DataDomain.Time;
            var buffer   = isTime ? TimeData : TransData;
            var colNames = isTime ? TimeChNames : TransChNames;

            //ch voltage
            colNames.Clear();
            buffer.Clear();
            for (int ch = 0; ch < chs.Length; ch++)
            {
                colNames.Add(chs[ch]);
                buffer.Add(new double[numDp]);
            }
        }
Esempio n. 15
0
        private void AddDomain(String name)
        {
            // Create a new domain within the database
            DataDomain domain = new DataDomain(this.CurrentDatabase);

            domain.Identifier = name;
            domain.Name       = name;
            domain.Save();

            // Add the tree node to the tree
            this.AddTreeNode(this.DomainTree.Nodes, domain);
            this.DomainTree.SelectedNode = this.DomainTree.Nodes[domain.Identifier];

            // Refresh the current database
            this.CurrentDatabase.Refresh();
        }
Esempio n. 16
0
        public static Driver GetDriver(DataDomain dataDomain)
        {
            switch (dataDomain.DomainUrl.Protocol)
            {
            case "msaccess":
                return(new Access.AccessDriver(dataDomain.DomainUrl));

            case "mssql":
                return(new MSSql.MSSqlDriver(dataDomain.DomainUrl));

            case "mysql":
                return(new MySql.MySqlDriver(dataDomain.DomainUrl));

            default:
                return(null);
            }
        }
Esempio n. 17
0
        void storeArray(DataDomain domain, double[][] data)
        {
            int numCh = data.Length;

            if (numCh < 1)
            {
                return;
            }
            int numDp = data[0].Length;

            var isTime = domain == DataDomain.Time;
            var buffer = isTime ? TimeData : TransData;

            for (int ch = 0; ch < numCh; ch++)
            {
                data[ch].CopyTo(buffer[ch], 0);
            }
        }
Esempio n. 18
0
        public static DataAssembler FromQuery(DataDomain dataDomain, string query)
        {
            ISqlScript sqlScript = SqlParserService.Parse(query);

            if (sqlScript.Statements != null && sqlScript.Statements.Count > 0)
            {
                ISqlStatement statement = sqlScript.Statements[0];
                if (statement is ISelectStatement)
                {
                    ISelectStatement selectStatement = statement as ISelectStatement;
                    if (selectStatement.Tables != null && selectStatement.Tables.Count > 0)
                    {
                        SqlTable      sqlTable      = selectStatement.Tables[0];
                        Table         table         = dataDomain[sqlTable.Name];
                        DataAssembler dataAssembler = new DataAssembler(dataDomain.DomainUrl.Url, table, query);
                        return(dataAssembler);
                    }
                }
            }
            return(null);
        }
Esempio n. 19
0
        public ActionResult CreateDishName(DataDomain.Dish dish)
        {
            if (ModelState.IsValid)
            {
                DataDomain.Menu objMenu = db.Menus.Where(x => x.Name == dish.Menu.Name).FirstOrDefault();

                dish.Menu = (objMenu != null) ? objMenu : new DataDomain.Menu { Name = dish.Menu.Name.ToLower(), IsActive = true,RestaurantId = System.Web.HttpContext.Current.User.Identity.GetUserId() };
                dish.IsActive = true;
                dish.RestaurantId =  System.Web.HttpContext.Current.User.Identity.GetUserId();

                dish.Name = dish.Name.ToLower();
                db.Dishes.Add(dish);
                db.SaveChanges();
                int id = dish.DishId;

                return RedirectToAction("Create", new { id = id });
            }
            ViewBag.MenuId = new SelectList(db.Menus, "MenuId", "Name", dish.MenuId);
            return View(dish);
        }
        public override DataDomain BuildDomain()
        {
            DataDomain domain = new DataDomain(this.Driver.DomainUrl);

            using (MySqlConnection connection = this.Driver.OpenConnection() as MySqlConnection)
            {
                string       commandTextTables = string.Format("SELECT Table_Name FROM information_schema.TABLES WHERE Table_Schema=\"{0}\" AND Table_Type=\"Base Table\"", this.Driver.DomainUrl.Database);
                MySqlCommand command           = new MySqlCommand(commandTextTables, connection);

                using (IDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        string tableName = reader.GetString(0);
                        Table  table     = new Table(tableName);
                        domain.AddTable(table);
                    }
                }

                string commandTextColumns = string.Format("SELECT table_catalog,table_schema,table_name,column_name,is_nullable,data_type,extra,column_type,column_key,character_maximum_length,numeric_precision,numeric_scale FROM information_schema.COLUMNS WHERE table_schema=\"{0}\"", this.Driver.DomainUrl.Database);
                command = new MySqlCommand(commandTextColumns, connection);

                using (IDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        string tableName = reader.GetString(2);                        //"TABLE_NAME"
                        Table  table     = domain[tableName];

                        if (table != null)
                        {
                            Column column = new Column();
                            column.Name = reader.GetString(3);                            //"COLUMN_NAME"
                            string      dataType    = reader.GetString(5);                //"DATA_TYPE"
                            MySqlDbType mySqlDbType = (MySqlDbType)Enum.Parse(typeof(MySqlDbType), dataType);
                            column.OriginalSQLType = mySqlDbType.ToString();

                            if (_sqlTypesDictionary.Contains(dataType))
                            {
                                column.SqlType = (SqlType)_sqlTypesDictionary[dataType];
                            }
                            else
                            {
                                column.SqlType = SqlType.Unknown;
                            }

                            if (_netDataTypes.ContainsKey(column.SqlType))
                            {
                                column.NetDataType      = (string)_netDataTypes[column.SqlType];
                                column.ActionScriptType = TypeMapper.GetActionScriptType(_netDataTypes[column.SqlType] as string);
                            }
                            else
                            {
                                column.NetDataType = "unknown";
                            }

                            if ((column.SqlType == SqlType.Char) ||
                                (column.SqlType == SqlType.AnsiChar) ||
                                (column.SqlType == SqlType.VarChar) ||
                                (column.SqlType == SqlType.AnsiVarChar) ||
                                (column.SqlType == SqlType.Text) ||
                                (column.SqlType == SqlType.Binary) ||
                                (column.SqlType == SqlType.VarBinary))
                            {
                                column.Length = reader.GetInt32(9);                                //"CHARACTER_MAXIMUM_LENGTH";
                            }
                            else if (column.SqlType == SqlType.Decimal)
                            {
                                column.Precision = reader.GetByte(10);                             //numeric_precision
                                column.Scale     = reader.GetInt32(11);                            //"NUMERIC_SCALE"
                            }

                            if ((column.SqlType == SqlType.Binary) ||
                                (column.SqlType == SqlType.VarBinary))
                            {
                                column.IsBlob = true;
                            }

                            if (column.Length == -1)
                            {
                                switch (column.SqlType)
                                {
                                case SqlType.VarChar:
                                    column.SqlType = SqlType.VarCharMax;
                                    column.Length  = 0;
                                    break;

                                case SqlType.AnsiVarChar:
                                    column.SqlType = SqlType.AnsiVarCharMax;
                                    column.Length  = 0;
                                    break;

                                case SqlType.VarBinary:
                                    column.SqlType = SqlType.VarBinaryMax;
                                    column.Length  = 0;
                                    break;

                                default:
                                    break;
                                }
                            }

                            if (!reader.IsDBNull(4))                             //IS_NULLABLE
                            {
                                string tmp = reader.GetString(4);
                                column.IsNullable = ("yes" == tmp.ToLower());
                            }

                            if (!reader.IsDBNull(6))                             //"extra"
                            {
                                string tmp = reader.GetString(6);
                                column.IsIdentity = ("auto_increment" == tmp.ToLower());
                            }

                            table.AddColumn(column);
                        }
                    }
                }

                string commandTextKeys = string.Format("SELECT kcu.TABLE_SCHEMA, kcu.TABLE_NAME, kcu.CONSTRAINT_NAME, tc.CONSTRAINT_TYPE, kcu.COLUMN_NAME, kcu.ORDINAL_POSITION from INFORMATION_SCHEMA.TABLE_CONSTRAINTS as tc join INFORMATION_SCHEMA.KEY_COLUMN_USAGE as kcu ON kcu.CONSTRAINT_SCHEMA = tc.CONSTRAINT_SCHEMA and kcu.CONSTRAINT_NAME = tc.CONSTRAINT_NAME and kcu.TABLE_SCHEMA = tc.TABLE_SCHEMA and kcu.TABLE_NAME = tc.TABLE_NAME WHERE ((tc.CONSTRAINT_TYPE = 'PRIMARY KEY') and (kcu.TABLE_SCHEMA =\"{0}\" )) order by kcu.TABLE_SCHEMA, kcu.TABLE_NAME, tc.CONSTRAINT_TYPE, kcu.CONSTRAINT_NAME, kcu.ORDINAL_POSITION", this.Driver.DomainUrl.Database);
                command = new MySqlCommand(commandTextKeys, connection);

                using (IDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        string tableName = reader.GetString(1);                        //"TABLE_NAME"
                        Table  table     = domain[tableName];
                        if (table != null)
                        {
                            string columnName = reader.GetString(4);                            //"COLUMN_NAME"
                            Column column     = table[columnName];
                            if (column != null)
                            {
                                column.IsPrimaryKey = true;
                            }
                        }
                    }
                }
            }
            return(domain);
        }
 public void UpdateDataDomain(DataDomain dataDomain) =>
 DataDomainCollection.ReplaceOne(x => x.Id == dataDomain.Id, dataDomain);
Esempio n. 22
0
        public override DataDomain BuildDomain()
        {
            DataDomain domain = new DataDomain(this.Driver.DomainUrl);

            using (IDbConnection connection = this.Driver.OpenConnection())
            {
                DataTable  schemaTable     = ((OleDbConnection)connection).GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[0]);
                DataColumn tableTypeColumn = schemaTable.Columns["TABLE_TYPE"];
                DataColumn tableNameColumn = schemaTable.Columns["TABLE_NAME"];

                foreach (DataRow schemaRowTable in schemaTable.Rows)
                {
                    if (string.Compare(schemaRowTable[tableTypeColumn].ToString(), "TABLE") == 0)
                    {
                        string tableName = schemaRowTable[tableNameColumn].ToString();
                        Table  table     = new Table(tableName);

                        DataTable  schemaColumns          = ((OleDbConnection)connection).GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, tableName });
                        DataColumn ordinalPosition        = schemaColumns.Columns["ORDINAL_POSITION"];
                        DataColumn dataType               = schemaColumns.Columns["DATA_TYPE"];
                        DataColumn columnNameColumn       = schemaColumns.Columns["COLUMN_NAME"];
                        DataColumn numericPrecisionColumn = schemaColumns.Columns["NUMERIC_PRECISION"];
                        DataColumn allowDBNull            = schemaColumns.Columns["IS_NULLABLE"];
                        DataColumn columnSize             = schemaColumns.Columns["CHARACTER_MAXIMUM_LENGTH"];
                        DataColumn numericScale           = schemaColumns.Columns["NUMERIC_SCALE"];
                        DataColumn descriptionColumn      = schemaColumns.Columns["DESCRIPTION"];
                        schemaColumns.DefaultView.Sort = ordinalPosition.ColumnName;
                        foreach (DataRowView schemaRowColumn in schemaColumns.DefaultView)
                        {
                            string columnName = schemaRowColumn[columnNameColumn.Ordinal].ToString();

                            Column column = new Column(columnName);
                            column.IsNullable = (bool)schemaRowColumn[allowDBNull.Ordinal];
                            OleDbType oleDbType = (OleDbType)schemaRowColumn[dataType.Ordinal];
                            column.OriginalSQLType = oleDbType.ToString();

                            if (_sqlTypesDictionary.Contains(oleDbType))
                            {
                                column.SqlType = (SqlType)_sqlTypesDictionary[oleDbType];
                            }
                            else
                            {
                                column.SqlType = SqlType.Unknown;
                            }

                            if (_netDataTypes.ContainsKey(column.SqlType))
                            {
                                column.NetDataType      = (string)_netDataTypes[column.SqlType];
                                column.ActionScriptType = TypeMapper.GetActionScriptType(_netDataTypes[column.SqlType] as string);
                            }
                            else
                            {
                                column.NetDataType = "unknown";
                            }

                            if (schemaRowColumn[numericPrecisionColumn.Ordinal] != DBNull.Value)
                            {
                                column.Length = Convert.ToInt32(schemaRowColumn[numericPrecisionColumn.Ordinal]);
                            }

                            if ((column.SqlType == SqlType.VarChar) || (column.SqlType == SqlType.VarBinary) || (column.SqlType == SqlType.Binary))
                            {
                                column.Length = Convert.ToInt32(schemaRowColumn[columnSize.Ordinal]);
                                if (column.SqlType == SqlType.VarChar)
                                {
                                    column.SqlType = SqlType.Text;
                                    //column.Length = 0;
                                }
                                else
                                {
                                    column.IsBlob = true;
                                }
                            }
                            else if (column.SqlType == SqlType.Decimal)
                            {
                                column.Length = Convert.ToInt32(schemaRowColumn[numericPrecisionColumn.Ordinal]);
                                column.Scale  = Convert.ToInt32(schemaRowColumn[numericScale.Ordinal]);
                            }

                            if (schemaRowColumn[descriptionColumn.Ordinal] != DBNull.Value)
                            {
                                string description = schemaRowColumn[descriptionColumn.Ordinal] as string;
                                if (description == "AutoNumber")
                                {
                                    column.IsIdentity = true;
                                }
                            }

                            table.AddColumn(column);
                        }

                        DataTable  schemaPrimaryKeys  = ((OleDbConnection)connection).GetOleDbSchemaTable(OleDbSchemaGuid.Primary_Keys, new object [] { null, null, tableName });
                        DataColumn pkColumnNameColumn = schemaColumns.Columns["COLUMN_NAME"];
                        foreach (DataRowView schemaRowPK in schemaPrimaryKeys.DefaultView)
                        {
                            string columnName = (string)schemaRowPK[pkColumnNameColumn.Ordinal];
                            Column column     = table[columnName];
                            if (column != null)
                            {
                                column.IsPrimaryKey = true;
                            }
                        }

                        domain.AddTable(table);
                    }
                }

                foreach (DataRow schemaRowTable in schemaTable.Rows)
                {
                    if (string.Compare(schemaRowTable[tableTypeColumn].ToString(), "TABLE") == 0)
                    {
                        string tableName = schemaRowTable[tableNameColumn].ToString();

                        DataTable  schemaForeignKeys = ((OleDbConnection)connection).GetOleDbSchemaTable(OleDbSchemaGuid.Foreign_Keys, new object[0]);
                        DataColumn constraintName    = schemaForeignKeys.Columns["FK_NAME"];
                        DataColumn columnOrdinal     = schemaForeignKeys.Columns["ORDINAL"];
                        DataColumn childTableName    = schemaForeignKeys.Columns["FK_TABLE_NAME"];
                        DataColumn parentColumnName  = schemaForeignKeys.Columns["FK_COLUMN_NAME"];
                        DataColumn updateRule        = schemaForeignKeys.Columns["UPDATE_RULE"];
                        DataColumn deleteRule        = schemaForeignKeys.Columns["DELETE_RULE"];
                        DataColumn parentTableName   = schemaForeignKeys.Columns["PK_TABLE_NAME"];
                        DataColumn childColumnName   = schemaForeignKeys.Columns["PK_COLUMN_NAME"];

                        schemaForeignKeys.DefaultView.Sort      = constraintName + "," + columnOrdinal.ColumnName;
                        schemaForeignKeys.DefaultView.RowFilter = childTableName.ColumnName + " = '" + tableName + "'";

                        foreach (DataRowView schemaRowFK in schemaForeignKeys.DefaultView)
                        {
                            string parentTable          = schemaRowFK[parentTableName.Ordinal].ToString();
                            string primaryKeyColumnName = schemaRowFK[childColumnName.Ordinal].ToString();
                        }
                    }
                }
            }

            return(domain);
        }
 public override void ParseData()
 {
     dataDomain = data.ToModel <DataDomain <BillVO> >();
 }
Esempio n. 24
0
 public void RemoveLine(DataDomain.Dish dish)
 {
     lineCollection.RemoveAll(l => l.objDish.DishId == dish.DishId);
 }
Esempio n. 25
0
        public void AddItem(DataDomain.Dish dish)
        {
            DishToCalcuLine line = lineCollection
                .Where(p => p.objDish.DishId == dish.DishId)
                .FirstOrDefault();

            // Only null
            if (line == null)
            {
                lineCollection.Add(new DishToCalcuLine
                {
                    objDish = dish,

                });
            }
        }
Esempio n. 26
0
        public DataDomain GetAssemblerDataDomain(DataAssembler dataAssembler)
        {
            DataDomain dataDomain = GetDataDomain(dataAssembler.DomainUrl);

            return(dataDomain);
        }
		public override DataDomain BuildDomain()
		{
			DataDomain domain = new DataDomain(this.Driver.DomainUrl);

			using(MySqlConnection connection = this.Driver.OpenConnection() as MySqlConnection )
			{
				string commandTextTables = string.Format("SELECT Table_Name FROM information_schema.TABLES WHERE Table_Schema=\"{0}\" AND Table_Type=\"Base Table\"", this.Driver.DomainUrl.Database);
				MySqlCommand command = new MySqlCommand(commandTextTables, connection);

				using(IDataReader reader = command.ExecuteReader())
				{
					while(reader.Read())
					{
						string tableName = reader.GetString(0);
						Table table = new Table(tableName);
						domain.AddTable(table);
					}
				}

				string commandTextColumns = string.Format("SELECT table_catalog,table_schema,table_name,column_name,is_nullable,data_type,extra,column_type,column_key,character_maximum_length,numeric_precision,numeric_scale FROM information_schema.COLUMNS WHERE table_schema=\"{0}\"", this.Driver.DomainUrl.Database);
				command = new MySqlCommand(commandTextColumns, connection);

				using (IDataReader reader = command.ExecuteReader())
				{
					while(reader.Read())
					{
						string tableName = reader.GetString(2);//"TABLE_NAME"
						Table table = domain[tableName];

						if( table != null )
						{
							Column column = new Column();
							column.Name = reader.GetString(3);//"COLUMN_NAME"
							string dataType = reader.GetString(5);//"DATA_TYPE"
                            MySqlDbType mySqlDbType = (MySqlDbType)Enum.Parse(typeof(MySqlDbType), dataType);
                            column.OriginalSQLType = mySqlDbType.ToString();

							if(_sqlTypesDictionary.Contains(dataType))
								column.SqlType = (SqlType)_sqlTypesDictionary[dataType];
							else
								column.SqlType = SqlType.Unknown;

                            if (_netDataTypes.ContainsKey(column.SqlType))
                            {
                                column.NetDataType = (string)_netDataTypes[column.SqlType];
                                column.ActionScriptType = TypeMapper.GetActionScriptType(_netDataTypes[column.SqlType] as string);
                            }
                            else
                                column.NetDataType = "unknown";

							if ((column.SqlType == SqlType.Char) ||
								(column.SqlType == SqlType.AnsiChar) ||
								(column.SqlType == SqlType.VarChar) ||
								(column.SqlType == SqlType.AnsiVarChar) ||
								(column.SqlType == SqlType.Text) ||
								(column.SqlType == SqlType.Binary) ||
								(column.SqlType == SqlType.VarBinary))
							{
								column.Length = reader.GetInt32(9);//"CHARACTER_MAXIMUM_LENGTH";
							}
							else if (column.SqlType == SqlType.Decimal)
							{
								column.Precision = reader.GetByte(10);//numeric_precision
								column.Scale = reader.GetInt32(11);//"NUMERIC_SCALE"
							}

                            if ((column.SqlType == SqlType.Binary) ||
                                (column.SqlType == SqlType.VarBinary))
                            {
                                column.IsBlob = true;
                            }

							if (column.Length == -1)
							{
								switch (column.SqlType)
								{
									case SqlType.VarChar:
										column.SqlType = SqlType.VarCharMax;
										column.Length = 0;
										break;
									case SqlType.AnsiVarChar:
										column.SqlType = SqlType.AnsiVarCharMax;
										column.Length = 0;
										break;
									case SqlType.VarBinary:
										column.SqlType = SqlType.VarBinaryMax;
										column.Length = 0;
										break;
									default:
										break;
								}
							}

							if( !reader.IsDBNull(4) )//IS_NULLABLE
							{
								string tmp = reader.GetString(4);
								column.IsNullable = ("yes" == tmp.ToLower());
							}

							if( !reader.IsDBNull(6) )//"extra"
							{
								string tmp = reader.GetString(6);
								column.IsIdentity = ("auto_increment" == tmp.ToLower());
							} 

							table.AddColumn(column);
						}
					}
				}

				string commandTextKeys = string.Format("SELECT kcu.TABLE_SCHEMA, kcu.TABLE_NAME, kcu.CONSTRAINT_NAME, tc.CONSTRAINT_TYPE, kcu.COLUMN_NAME, kcu.ORDINAL_POSITION from INFORMATION_SCHEMA.TABLE_CONSTRAINTS as tc join INFORMATION_SCHEMA.KEY_COLUMN_USAGE as kcu ON kcu.CONSTRAINT_SCHEMA = tc.CONSTRAINT_SCHEMA and kcu.CONSTRAINT_NAME = tc.CONSTRAINT_NAME and kcu.TABLE_SCHEMA = tc.TABLE_SCHEMA and kcu.TABLE_NAME = tc.TABLE_NAME WHERE ((tc.CONSTRAINT_TYPE = 'PRIMARY KEY') and (kcu.TABLE_SCHEMA =\"{0}\" )) order by kcu.TABLE_SCHEMA, kcu.TABLE_NAME, tc.CONSTRAINT_TYPE, kcu.CONSTRAINT_NAME, kcu.ORDINAL_POSITION", this.Driver.DomainUrl.Database);
				command = new MySqlCommand(commandTextKeys, connection);

				using (IDataReader reader = command.ExecuteReader())
				{
					while(reader.Read())
					{
						string tableName = reader.GetString(1);//"TABLE_NAME"
						Table table = domain[tableName];
						if( table != null )
						{
							string columnName = reader.GetString(4);//"COLUMN_NAME"
							Column column = table[columnName];
							if( column != null )
								column.IsPrimaryKey = true;
						}
					}
				}
			}
			return domain;
		}