Exemplo n.º 1
0
 public Database(IDatabaseSchema databaseSchema)
 {
     classes = databaseSchema.Classes.Select(c => new Class
     {
         fields =
             databaseSchema.Properties.Where(p => p.Value.ParentClassId == c.Value.ClassId.Id)
             .Select(f => new Field {
             name = f.Value.Name, protectionLevel = MUTDODQLProtectionLevel.Public
         })
             .ToList(),
         isGeneric = false,
         methods   =
             databaseSchema.Methods.ContainsKey(c.Key)
                 ? databaseSchema.Methods[c.Key].Select(
                 m =>
                 new Method
         {
             name            = m,
             protectionLevel = MUTDODQLProtectionLevel.Public,
             parameters      = new List <Param>()
         }).ToList()
                 : new List <Method>(),
         protectionLevel = MUTDODQLProtectionLevel.Public,
         name            = c.Value.Name
     }).ToList();
 }
Exemplo n.º 2
0
 public override void Resolve(IDatabaseSchema database, IDBTable table)
 {
     base.Resolve (database, table);
     ReferencesTable = database[ReferencesTableName];
     ThroughTable = database[ThroughTableName];
     ThroughColumnThis = FindFk(this.Table, ThroughColumnNameThis);
     ThroughColumnThat = FindFk(ReferencesTable, ThroughColumnNameThat);
 }
Exemplo n.º 3
0
        public void TestIsNotNull()
        {
            DTOQuery        inputQuery     = new DTOQuery();
            IDatabaseSchema databaseSchema = CreateEmptyDatabaseSchema();

            inputQuery.QueryText = "Student where name is not null;";
            IQueryAnalyzer analizer = new EBNFQueryAnalyzer();
        }
Exemplo n.º 4
0
        public async Task DeleteAsync(IDatabaseSchema schema)
        {
            Ensure.NotNull(schema, nameof(schema));

            await db.DatabaseSchemas.PatchAsync(schema.Id, new[] {
                Change.Replace("deleted", Now)
            }, condition : IsNull("deleted"));
        }
Exemplo n.º 5
0
        public IQueryTree ParseQuery(IQuery inputQuery, IDatabaseSchema databaseSchema)
        {
            SyntaxAnalyzer.SyntaxAnalyzer syntaxAlr = new SyntaxAnalyzer.SyntaxAnalyzer();
            QueryTree qt = syntaxAlr.CheckQuerySyntax(inputQuery.QueryText);

            SemanticAnalyzer.SemanticAnalyzer semanticAlr = new SemanticAnalyzer.SemanticAnalyzer();
            semanticAlr.CheckQuerySemantic(qt, new Database(databaseSchema));

            return(qt);
        }
Exemplo n.º 6
0
 public void SaveSchema(IDatabaseSchema schema)
 {
     if (!_metadata.Databases.ContainsKey(schema.DatabaseId))
     {
         throw new DatabaseNotFoundException(String.Format("Nie odnaleziono bazy danych o id: '{0}'",
                                                           schema.DatabaseId));
     }
     _metadata.Databases[schema.DatabaseId].Schema = schema;
     StorageMetadata.SaveMetadata(_metadata, _logger);
 }
Exemplo n.º 7
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="databaseSchema">获取数据库结构信息接口</param>
 /// <param name="tableSchema">表架构接口</param>
 public BuildDatabase(IDatabaseSchema databaseSchema, ITableSchema tableSchema)
 {
     if (databaseSchema == null)
     {
         throw new ArgumentNullException("databaseSchema");
     }
     if (tableSchema == null)
     {
         throw new ArgumentNullException("tableSchema");
     }
     this.databaseSchema = databaseSchema;
     this.tableSchema    = tableSchema;
 }
Exemplo n.º 8
0
        /// <summary>
        /// 释放资源
        /// </summary>
        public void Dispose()
        {
            if (databaseSchema != null)
            {
                databaseSchema.Dispose();
            }
            if (tableSchema != null)
            {
                tableSchema.Dispose();
            }

            this.databaseSchema = null;
            this.tableSchema    = null;
        }
Exemplo n.º 9
0
 public override void Resolve(IDatabaseSchema database, IDBTable table)
 {
     base.Resolve (database, table);
     try
     {
         ReferencesTable = database[ReferencesTableName];
     }
     catch(KeyNotFoundException ex)
     {
         throw new Exception("Tabulka "+ReferencesTableName+" nebyla nalezena", ex);
     }
     if(ReferencesColumnName != null)
         ReferencesColumn = ReferencesTable[ReferencesColumnName];
     else
         ReferencesColumn = ReferencesTable.PrimaryKey;
 }
Exemplo n.º 10
0
        public static void InitDb <T>(T db) where T : Afx.Data.Entity.EntityContext
        {
            if (!ConfigUtils.InitDatabase || IsInit)
            {
                return;
            }
            lock (lockObj)
            {
                if (IsInit)
                {
                    return;
                }
                string          connectionString = ConfigUtils.ConnectionString;
                IDatabaseSchema databaseSchema   = null;
                ITableSchema    tableSchema      = null;
                switch (ConfigUtils.DatabaseType)
                {
                case DatabaseType.MSSQLServer:
                    databaseSchema = new Afx.Data.MSSQLServer.Entity.Schema.MsSqlDatabaseSchema(connectionString);
                    tableSchema    = new Afx.Data.MSSQLServer.Entity.Schema.MsSqlTableSchema(connectionString);
                    break;

                case DatabaseType.MySQL:
                    databaseSchema = new Afx.Data.MySql.Entity.Schema.MySqlDatabaseSchema(connectionString);
                    tableSchema    = new Afx.Data.MySql.Entity.Schema.MySqlTableSchema(connectionString);
                    break;

                default:
                    throw new Exception("【InitDatabase】InitDb, 数据库类型错误!");
                }
                //更新数据库结构sql 日志
                databaseSchema.Log = WriteSQL;
                tableSchema.Log    = WriteSQL;
                using (var build = new BuildDatabase(databaseSchema, tableSchema))
                {
                    build.Build <T>();
                }

                IsInit = true;
            }
        }
Exemplo n.º 11
0
        public GeneratorSettings(IDatabaseSchema schema)
        {
            EntityFrameworkVersion = EntityFrameworkVersion.v6;

            DatabaseName = schema.Name;
            switch (schema.Provider.Name) {
                case "SQLAnywhereSchemaProvider":
                    SchemaProviderName = "iAnywhere.Data.SQLAnywhere";
                    SchemaProviderManifestToken = "12";
                    break;

                case "MySQLSchemaProvider":
                    SchemaProviderName = "MySql.Data.MySqlClient";
                    SchemaProviderManifestToken = "5.5";
                    break;

                default:
                    SchemaProviderName = "System.Data.SqlClient";
                    SchemaProviderManifestToken = "2008";
                    break;
            }
        }
Exemplo n.º 12
0
        public GeneratorSettings(IDatabaseSchema schema)
        {
            EntityFrameworkVersion = EntityFrameworkVersion.v6;

            DatabaseName = schema.Name;
            switch (schema.Provider.Name)
            {
            case "SQLAnywhereSchemaProvider":
                SchemaProviderName          = "iAnywhere.Data.SQLAnywhere";
                SchemaProviderManifestToken = "12";
                break;

            case "MySQLSchemaProvider":
                SchemaProviderName          = "MySql.Data.MySqlClient";
                SchemaProviderManifestToken = "5.5";
                break;

            default:
                SchemaProviderName          = "System.Data.SqlClient";
                SchemaProviderManifestToken = "2008";
                break;
            }
        }
Exemplo n.º 13
0
        /// <summary>
        /// 释放资源
        /// </summary>
        public void Dispose()
        {
            if (databaseSchema != null)
            {
                databaseSchema.Dispose();
            }
            if (dbContexSchema != null)
            {
                dbContexSchema.Dispose();
            }
            if (modelSchema != null)
            {
                modelSchema.Dispose();
            }
            if (tableSchema != null)
            {
                tableSchema.Dispose();
            }

            this.databaseSchema = null;
            this.dbContexSchema = null;
            this.modelSchema    = null;
            this.tableSchema    = null;
        }
Exemplo n.º 14
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="databaseSchema"></param>
 /// <param name="tableSchema"></param>
 /// <param name="dbContextSchema"></param>
 /// <param name="modelSchema"></param>
 public BuildModel(IDatabaseSchema databaseSchema, ITableSchema tableSchema,
                   IDbContextSchema dbContextSchema, IModelSchema modelSchema)
 {
     if (databaseSchema == null)
     {
         throw new ArgumentNullException("databaseSchema");
     }
     if (tableSchema == null)
     {
         throw new ArgumentNullException("tableSchema");
     }
     if (dbContextSchema == null)
     {
         throw new ArgumentNullException("dbContextSchema");
     }
     if (modelSchema == null)
     {
         throw new ArgumentNullException("modelSchema");
     }
     this.databaseSchema = databaseSchema;
     this.tableSchema    = tableSchema;
     this.dbContexSchema = dbContextSchema;
     this.modelSchema    = modelSchema;
 }
Exemplo n.º 15
0
		private void ExecuteSchemaAction(
			SchemaAction schemaAction,
			IDatabaseSchema databaseSchema)
		{
			schemaActionDictionary[schemaAction](databaseSchema);
		}
Exemplo n.º 16
0
 public void Execute(DBTriggerPosition action, IDatabaseSchema database, IDBTable table, string query, DataRow row)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 17
0
 public DatabaseConnection(IDatabaseSchema Schema, string url)
 {
     this.Schema = Schema;
     this.Server = new ServerConnection(url);
 }
Exemplo n.º 18
0
        /// <summary>
        /// Compare the source schema to the target schema
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCompare_Click(object sender, EventArgs e)
        {
            rtbSourceText.Clear();
            tvComparison.Nodes.Clear();

            spcSource.ReportProgress($@"Validating...");

            if (!spcSource.IsValid())
            {
                MessageBox.Show(@"Source schema is not correctly specified.", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                spcSource.ReportProgress(string.Empty);
                return;
            }
            if (!spcTarget.IsValid())
            {
                MessageBox.Show(@"Target schema is not correctly specified.", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                spcSource.ReportProgress(string.Empty);
                return;
            }

            if (!ValidateSettings())
            {
                return;
            }

            // Load both of the schemas
            Cursor lastCursor = Cursor.Current;

            Cursor.Current = Cursors.WaitCursor;

            IDatabaseSchema TryGetSchema(Func <Either <IOperationError, DatabaseSchema> > schema)
            {
                try
                {
                    return(schema()
                           .Map(valid => (IDatabaseSchema) new ValidDatabaseSchema(() => valid))
                           .Reduce(
                               schemaError => new InvalidDatabaseSchema(schemaError)));
                }
                catch (Exception exception)
                {
                    return(new InvalidDatabaseSchema(new NonSpecificOperationError(exception)));
                }
            }

            Func <DefaultOperationErrorMessageResolver> errorMessageResolver = DefaultOperationErrorMessageResolver
                                                                               .Using(() => new List <IOperationErrorMessageSpecification>()
            {
                KustoOperationErrorSpecifications.ClusterNotFound(),
                KustoOperationErrorSpecifications.DatabaseNotFound(),
                KustoOperationErrorSpecifications.CannotAuthenticate(),
                FilePathOperationErrorSpecifications.FolderNotFound()
            });


            spcSource.ReportProgress($@"Loading source schema...");
            IDatabaseSchema sourceSchema = TryGetSchema(() => spcSource.TryLoadSchema());

            spcSource.ReportProgress($@"Schema loaded.");
            spcTarget.ReportProgress($@"Loading target schema...");
            IDatabaseSchema targetSchema = sourceSchema is InvalidDatabaseSchema _
                ? new InvalidDatabaseSchema(new NonSpecificOperationError(
                                                new InvalidOperationException("Target schema not loaded due to Source schema error.")))
                : TryGetSchema(() => spcTarget.TryLoadSchema());

            switch (sourceSchema)
            {
            case InvalidDatabaseSchema invalidSource:
                MessageBox.Show($@"The Source schema is invalid: {errorMessageResolver().ResolveFor(invalidSource.Error).Get()}", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;

            case ValidDatabaseSchema _ when targetSchema is InvalidDatabaseSchema invalidTarget:
                MessageBox.Show($@"The Target schema is invalid: {errorMessageResolver().ResolveFor(invalidTarget.Error).Get()}", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;

            case ValidDatabaseSchema source when targetSchema is ValidDatabaseSchema target:
                spcTarget.ReportProgress($@"Schema loaded.");
                _sourceSchema = source.Schema;
                _targetSchema = target.Schema;
                break;
            }

            Cursor.Current = lastCursor;

            spcSource.ReportProgress($@"Comparing differences...");
            IEnumerable <SchemaDifference> tableDifferences = new KustoSchemaDifferenceMapper(() =>
                                                                                              _sourceSchema.Tables.AsKustoSchema().DifferenceFrom(_targetSchema.Tables.AsKustoSchema()))
                                                              .GetDifferences();

            IEnumerable <SchemaDifference> functionDifferences = new KustoSchemaDifferenceMapper(() =>
                                                                                                 _sourceSchema.Functions.AsKustoSchema().DifferenceFrom(_targetSchema.Functions.AsKustoSchema()))
                                                                 .GetDifferences();

            // Add to the tree view control
            PopulateTree(tableDifferences.Concat(functionDifferences), tvComparison);

            spcSource.ReportProgress(string.Empty);
            spcTarget.ReportProgress(string.Empty);
            // Enable the update button now that a comparison has been generated.
            btnUpdate.Enabled = true;
        }
Exemplo n.º 19
0
 public HomeService(ISampleDatabase sampleDatabase, IDatabaseSchema dataBaseSchema)
 {
     this.sampleDatabase = sampleDatabase;
     this.dataBaseSchema = dataBaseSchema;
 }
Exemplo n.º 20
0
 public Oid SaveSchema(IDatabaseSchema schema)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 21
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="databaseSchema"></param>
 /// <param name="tableSchema"></param>
 /// <param name="modelSchema"></param>
 public BuildModel(IDatabaseSchema databaseSchema, ITableSchema tableSchema, IModelSchema modelSchema)
     : this(databaseSchema, tableSchema, new DbContextSchema(), modelSchema)
 {
 }
        public ProjectBuilderSettings(IDatabaseSchema database)
        {
            if (database == null)
            {
                throw new ArgumentNullException("database");
            }

            QueryPattern             = QueryPatternEnum.ManagerClasses;
            EnsureMultipleResultSets = false;
            ZipFileRoot    = "Common";
            SourceDatabase = database;

            Type type = database.Provider.GetType();

            DatabaseProvider = String.Format("{0}, {1}", type.FullName, type.Assembly.FullName.Split(',')[0]);

            // System.Data.OleDb,
            // System.Data.Odbc,
            // http://www.mono-project.com/Provider_Factory
            // http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.providername.aspx
            switch (DatabaseProvider)
            {
            case "SchemaExplorer.ADOXSchemaProvider, SchemaExplorer.ADOXSchemaProvider":
                ConnectionStringProvider = "System.Data.OleDb";
                break;

            case "SchemaExplorer.DB2zOSSchemaProvider, SchemaExplorer.DB2zOSSchemaProvider":
            case "SchemaExplorer.ISeriesSchemaProvider, SchemaExplorer.ISeriesSchemaProvider":
                ConnectionStringProvider = "IBM.Data.DB2";
                break;

            case "SchemaExplorer.MySQLSchemaProvider, SchemaExplorer.MySQLSchemaProvider":
                ConnectionStringProvider = "MySql.Data.MySqlClient";
                break;

            case "SchemaExplorer.OracleSchemaProvider, SchemaExplorer.OracleSchemaProvider":
                ConnectionStringProvider = "System.Data.OracleClient";
                break;

            case "SchemaExplorer.PostgreSQLSchemaProvider, SchemaExplorer.PostgreSQLSchemaProvider":
                ConnectionStringProvider = "Npgsql";
                break;

            case "SchemaExplorer.SQLAnywhereSchemaProvider, SchemaExplorer.SQLAnywhereSchemaProvider":
                ConnectionStringProvider = "IAnywhere.Data.SQLAnywhere";
                break;

            case "SchemaExplorer.SqlCompactSchemaProvider, SchemaExplorer.SqlCompactSchemaProvider":
                ConnectionStringProvider = "System.Data.SqlServerCe.3.5";
                break;

            case "SchemaExplorer.SqlCompact4SchemaProvider, SchemaExplorer.SqlCompact4SchemaProvider":
                ConnectionStringProvider = "System.Data.SqlServerCe.4.0";
                break;

            case "SchemaExplorer.SQLiteSchemaProvider, SchemaExplorer.SQLiteSchemaProvider":
                ConnectionStringProvider = "System.Data.SQLite";
                break;

            case "SchemaExplorer.VistaDBSchemaProvider, SchemaExplorer.VistaDBSchemaProvider":
            case "SchemaExplorer.VistaDB4SchemaProvider, SchemaExplorer.VistaDB4SchemaProvider":
                ConnectionStringProvider = "System.Data.VistaDB";
                break;

            case "SchemaExplorer.SqlSchemaProvider, SchemaExplorer.SqlSchemaProvider":
                EnsureMultipleResultSets = true;
                ConnectionStringProvider = "System.Data.SqlClient";
                break;

            default:
                Trace.WriteLine(String.Format("ConnectionStringProvider could not be resolved for provider: {0}", DatabaseProvider));
                break;
            }
        }
Exemplo n.º 23
0
 public static string DropCreateSchema(this IDatabaseSchema databaseSchema)
 {
     return($"{databaseSchema.Drop()} {Environment.NewLine} {databaseSchema.Create()}");
 }
Exemplo n.º 24
0
 public DatabaseSetTarefa(IDatabaseSchema databaseSchema, IUnitOfWork unitOfWork)
 {
     this.databaseSchema = databaseSchema;
     this.unitOfWork     = unitOfWork;
 }
Exemplo n.º 25
0
 private void ExecuteSchemaAction(
     SchemaAction schemaAction,
     IDatabaseSchema databaseSchema)
 {
     schemaActionDictionary[schemaAction](databaseSchema);
 }
Exemplo n.º 26
0
 public virtual void Resolve(IDatabaseSchema database, IDBTable table)
 {
     this.Table = table;
 }