Beispiel #1
0
        /// <summary>
        /// 连接字符串
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ConnectDB_Click(object sender, RoutedEventArgs e)
        {
            if (!this.ViewModel.TestConnectionion())
            {
                MessageBox.Show("选择的数据库连接不上,请重新填写");
                return;
            }

            DatabaseMeta dbMeta = null;

            switch (this.ViewModel.DBTypeSelectIndex)
            {
            case 0:
                dbMeta = DatabaseMeta.CreateByMysql(this.ViewModel.ConnectionString);
                break;

            case 1:
                dbMeta = DatabaseMeta.CreateBySqlserver(this.ViewModel.ConnectionString);
                break;

            case 2:
                dbMeta = DatabaseMeta.CreateBySqlite(this.ViewModel.ConnectionString);
                break;
            }

            foreach (var item in dbMeta.Tables)
            {
                this.ViewModel.Tables.Add(new TableSelectModel()
                {
                    IsSelected = true, TableName = item.TableName, Meta = item
                });
            }
        }
Beispiel #2
0
        private void TestMeta(IDatabase database)
        {
            DatabaseMeta meta    = new DatabaseMeta(1);
            bool         success = database.UpsertMeta(meta);

            Assert.True(success);

            DatabaseMeta selectedMeta = database.SelectMeta(1);

            Assert.NotNull(selectedMeta);
        }
Beispiel #3
0
        public async Task RunAsync()
        {
            Console.WriteLine($"Begin downloading data to folder: {_baseFolder}");
            var cosmosMeta = new CosmosMeta();

            cosmosMeta.Databases = new List <DatabaseMeta>();

            var databases = await _client.ReadDatabaseFeedAsync();

            foreach (var db in databases)
            {
                Console.WriteLine($"Procerssing database: {db.Id}");
                var dbMeta = new DatabaseMeta();
                dbMeta.DBSchema          = db;
                dbMeta.CollectionSchemas = new List <DocumentCollection>();

                // Create a folder for each database.
                string dbFolder = Path.Combine(_baseFolder, db.Id);
                Directory.CreateDirectory(dbFolder);

                var collections = await _client.ReadDocumentCollectionFeedAsync(db.CollectionsLink);

                foreach (var collection in collections)
                {
                    Console.WriteLine($"Procerssing collection: {collection.Id}");
                    dbMeta.CollectionSchemas.Add(collection);

                    var docs = await _client.ReadDocumentFeedAsync(collection.DocumentsLink);

                    var serilized = JsonConvert.SerializeObject(docs);

                    // Create a file for each data base.
                    string collectionFile = Path.Combine(dbFolder, collection.Id + ".json");
                    try
                    {
                        File.WriteAllText(collectionFile, serilized);
                    }
                    catch { }
                }

                cosmosMeta.Databases.Add(dbMeta);
            }

            string metaFile = Path.Combine(_baseFolder, Constants.MetaFileName);

            try
            {
                File.WriteAllText(metaFile, JsonConvert.SerializeObject(cosmosMeta));
            }
            catch { }

            Console.WriteLine($"Finished downloading data to folder: {_baseFolder}");
        }
        private void UpdateDatabase(int version)
        {
            DatabaseMeta meta = Database.SelectMeta(version);

            if (meta == null)
            {
                meta = new DatabaseMeta(version);
                Database.UpsertMeta(meta);
            }

            if (!meta.ReadItemData)
            {
                ItemDataBin itemDataBin = new ItemDataBin();
                itemDataBin.Read(Path.Combine(Utils.RelativeApplicationDirectory(), "Data/ItemData.bin"));
                _logger.Info("Loading: {0} items from ItemData.bin", itemDataBin.Entries.Count);
                foreach (Item item in itemDataBin.Entries)
                {
                    Database.UpsertItem(item);
                }

                meta.ReadItemData = true;
                Database.UpsertMeta(meta);
            }


            if (!meta.ReadQuestData)
            {
                QuestDataBin questDataBin = new QuestDataBin();
                questDataBin.Read(Path.Combine(Utils.RelativeApplicationDirectory(), "Data/Quest_data.bin"));
                _logger.Info("Loading: {0} quests from Quest_data.bin", questDataBin.Entries.Count);
                foreach (Quest quest in questDataBin.Entries)
                {
                    Database.UpsertQuest(quest);
                }

                meta.ReadQuestData = true;
                Database.UpsertMeta(meta);
            }

            if (!meta.ReadSongData)
            {
                MusicDataBin musicDataBin = new MusicDataBin();
                musicDataBin.Read(Path.Combine(Utils.RelativeApplicationDirectory(), "Data/music_data.bin"));
                _logger.Info("Loading: {0} songs from music_data.bin", musicDataBin.Entries.Count);
                foreach (Song song in musicDataBin.Entries)
                {
                    Database.UpsertSong(song);
                }

                meta.ReadSongData = true;
                Database.UpsertMeta(meta);
            }
        }
Beispiel #5
0
        public ContractOrderDictionary(DatabaseMeta meta)
        {
            if (meta == null)
            {
                return;
            }
            foreach (var proc in meta.Procedures)
            {
                var maxRequestOrder = 1;
                foreach (var requestItem in proc.Request)
                {
                    SetIndex(GetRequestItemKey(proc.SpName, requestItem.Name), requestItem.Order);
                    maxRequestOrder = Math.Max(requestItem.Order, maxRequestOrder);

                    if (requestItem.TVP != null)
                    {
                        var maxTvpOrder = 1;
                        foreach (var tvpItem in requestItem.TVP)
                        {
                            SetIndex(GetRequestTvpKey(proc.SpName, requestItem.Name, tvpItem.Name), tvpItem.Order);
                            maxTvpOrder = Math.Max(tvpItem.Order, maxTvpOrder);
                        }

                        SetIndex(GetRequestTvpMaxKey(proc.SpName, requestItem.Name), maxTvpOrder);
                    }
                }
                //save the max index of request class
                SetIndex(GetRequestMaxKey(proc.SpName), maxRequestOrder);

                var maxResponseOrder = 3;
                foreach (var respItem in proc.Responses)
                {
                    SetIndex(GetResponseItemKey(proc.SpName, respItem.Name), respItem.Order);
                    maxResponseOrder = Math.Max(respItem.Order, maxResponseOrder);

                    var maxParamOrder = 1;
                    foreach (var param in respItem.Params)
                    {
                        SetIndex(GetResponseResultItemKey(proc.SpName, respItem.Name, param.Name), param.Order);
                        maxResponseOrder = Math.Max(param.Order, maxParamOrder);
                    }

                    SetIndex(GetResponseResultMaxKey(proc.SpName, respItem.Name), maxParamOrder);
                }

                SetIndex(GetResponseMaxKey(proc.SpName), maxResponseOrder);
            }
        }
        public List <DatabaseMeta> GetTables()
        {
            using (SqlConnection connection = new SqlConnection(this.ConnectionString))
            {
                connection.Open();
                DataTable           schema     = connection.GetSchema("Tables");
                List <DatabaseMeta> TableNames = new List <DatabaseMeta>();
                foreach (DataRow row in schema.Rows)
                {
                    DatabaseMeta databaseMeta = new DatabaseMeta();
                    databaseMeta.DatabaseName    = row[0].ToString();
                    databaseMeta.TableSchemaName = row[1].ToString();
                    databaseMeta.TableName       = row[2].ToString();
                    databaseMeta.TableType       = row[3].ToString();

                    TableNames.Add(databaseMeta);
                }
                return(TableNames);
            }
        }
Beispiel #7
0
 public bool EditDatabase(int databaseId, DatabaseMeta databaseMeta)
 {
     var database = Model.Databases.Get(databaseId);
     Model.DatabasesMeta.Update(database.DatabaseMetaId, databaseMeta);
     SetDatabaseAsModified(databaseId);
     
     return true;
 }