Пример #1
0
        public static void LoadFromSystemDB(MieSystemDB systemDB, MieLanguageInfo langInfo)
        {
            SQLiteCommand command = systemDB.Connection.CreateCommand();

            command.CommandText = @"SELECT * FROM LanguageEntries ORDER BY FileCode;";
            using (SQLiteDataReader reader = command.ExecuteReader())
            {
                while (reader.Read() == true)
                {
                    var fileCode     = (long)reader["FileCode"];
                    var id           = (int)(long)reader["ID"];
                    var referenceID  = (long)reader["ReferenceID"];
                    var defaultText  = (string)reader["DefaultText"];
                    var femaleText   = (string)reader["FemaleText"];
                    var xProductLine = (long)reader["ProductLine"];
                    var xUpdatedAt   = (long)reader["UpdatedAt"];

                    MieProduct.NProductLine productLine = (MieProduct.NProductLine)Enum.ToObject(typeof(MieProduct.NProductLine), xProductLine);
                    DateTime updateAt = new DateTime(xUpdatedAt);

                    MieLanguageEntry langEntry = new MieLanguageEntry(id, defaultText, femaleText, productLine, referenceID, updateAt);
                    langInfo.AddFileEntry(fileCode, langEntry);
                }
            }
        }
Пример #2
0
        public static void SaveToSysyemDB(MieSystemDB systemDb, MieLanguageInfo langInfo)
        {
            using (SQLiteTransaction trans = systemDb.Connection.BeginTransaction())
            {
                foreach (var langFile in langInfo.Items.Values)
                {
                    if (langFile.FileCode == 0)
                    {
                        var msg = $"Unknown FileCode({langFile.FileCode}).";
                        logger.Fatal(msg);
                        throw new Exception(msg);
                    }
                    else
                    {
                        SQLiteCommand cmd = systemDb.Connection.CreateCommand();
                        cmd.CommandText = "INSERT INTO LanguageEntries VALUES(@FileCode,@ID,@ReferenceID,@ReferenceText,@DefaultText,@FemaleText,@ProductLine,@UpdatedAt);";
                        //// パラメータのセット
                        cmd.Parameters.Add("FileCode", System.Data.DbType.Int64);
                        cmd.Parameters.Add("ID", System.Data.DbType.Int32);
                        cmd.Parameters.Add("ReferenceID", System.Data.DbType.Int64);
                        cmd.Parameters.Add("ReferenceText", System.Data.DbType.String);
                        cmd.Parameters.Add("DefaultText", System.Data.DbType.String);
                        cmd.Parameters.Add("FemaleText", System.Data.DbType.String);
                        cmd.Parameters.Add("ProductLine", System.Data.DbType.Int32);
                        cmd.Parameters.Add("UpdatedAt", System.Data.DbType.Int64);

                        foreach (var entry in langFile.Items)
                        {
                            cmd.Parameters["FileCode"].Value      = langFile.FileCode;
                            cmd.Parameters["ID"].Value            = entry.ID;
                            cmd.Parameters["ReferenceID"].Value   = entry.ReferenceID;
                            cmd.Parameters["ReferenceText"].Value = MieHashTools.ComputeHashIds(entry.ReferenceID);
                            cmd.Parameters["DefaultText"].Value   = entry.DefaultText;
                            cmd.Parameters["FemaleText"].Value    = entry.FemaleText;
                            cmd.Parameters["ProductLine"].Value   = (int)entry.ProductLine;
                            cmd.Parameters["UpdatedAt"].Value     = entry.UpdatedAt.Ticks;

                            try
                            {
                                cmd.ExecuteNonQuery();
                            }
                            catch (Exception ex)
                            {
                                logger.Error(ex, $"LanguageEntries: FileCode({langFile.FileCode}) ID({entry.ID})");
                            }
                        }
                    }
                }

                trans.Commit();
            }
        }
Пример #3
0
 public void LoadFromFolder(
     string folderPath,
     MieProduct.NProductLine productLine,
     MieProduct.NLanguageType languageType,
     MieFileList fileList)
 {
     this.languageInfo = MieStringTableDao.LoadFromFolder(
         folderPath,
         productLine,
         languageType,
         fileList);
     Console.WriteLine(this.languageInfo.FileCount);
 }
Пример #4
0
        /// <summary>
        /// 指定されたDBから言語情報を取得する。
        /// </summary>
        /// <param name="path">DBのパス</param>
        public MieStringMargeUtils(string path)
        {
            var systemDb = new MieSystemDB();

            systemDb.Open(path);

            var sysApp = new MieSystemDbApp();

            sysApp.LoadFromDB(systemDb);
            this.languageInfo = sysApp.LanguageInfo;
            this.fileList     = sysApp.FileList;

            systemDb.Close();
        }
Пример #5
0
        public static void MargeFromFolder(MieLanguageInfo mieLanguageInfo, string folderPath, MieProduct.NProductLine productLine, MieProduct.NLanguageType languageType)
        {
            if (!Directory.Exists(folderPath))
            {
                var msg = $"Warning: Folder not exists. Folder({folderPath})";
                logger.Warn(msg);
                Console.WriteLine(msg);
                return;
            }

            string[] files = Directory.GetFiles(folderPath, "*.stringtable", SearchOption.AllDirectories);
            files
            .Where(file => Path.GetExtension(file).ToLower() == ".stringtable")
            .ToList()
            .ForEach(x =>
            {
                var fileID       = string.Empty;
                var languageFile = LoadFromXml(x, productLine, out fileID);
                mieLanguageInfo.AddFile(languageFile, true);
            });
        }
Пример #6
0
        public static MieLanguageInfo LoadFromFolder(
            string folderPath,
            MieProduct.NProductLine productLine,
            MieProduct.NLanguageType languageType,
            MieFileList fileList)
        {
            var mieLanguageInfo = new MieLanguageInfo();

            string[] files = Directory.GetFiles(folderPath, "*.stringtable", SearchOption.AllDirectories);
            files
            .Where(file => Path.GetExtension(file).ToLower() == ".stringtable")
            .ToList()
            .ForEach(x =>
            {
                var fileID       = string.Empty;
                var languageFile = LoadFromXml(x, productLine, out fileID);
                //// 言語情報の登録
                mieLanguageInfo.AddFile(languageFile, false);
                //// FileListの作成
                fileList.AddEntryByFileIdAndFileCode(fileID, languageFile.FileCode, languageType);
            });

            return(mieLanguageInfo);
        }
Пример #7
0
 public MieConversationApp(MieLanguageInfo languageInfo, MieConversationNodeInfo design, MieCharacterAttributeFile characterAttributeFile)
 {
     this.LanguageInfo           = languageInfo;
     this.Design                 = design;
     this.CharacterAttributeFile = characterAttributeFile;
 }
Пример #8
0
 public MieDataConvertGameApp(MieLanguageInfo languageInfo)
 {
     this.LanguageInfo = languageInfo;
 }
Пример #9
0
 public MieQuestsApp(MieLanguageInfo languageInfo, MieQuestsNodeInfo design)
 {
     this.LanguageInfo = languageInfo;
     this.Design       = design;
 }
Пример #10
0
 public MieGameApp(MieLanguageInfo languageInfo)
 {
     this.LanguageInfo = languageInfo;
 }
 public MieDataConvertQuestsApp(MieLanguageInfo languageInfo)
 {
     this.LanguageInfo = languageInfo;
 }