/// <summary> /// Converts a json file to sql file /// </summary> public static string json2sql(Session session, string folder, string json_filename, WeenieSQLWriter converter) { var json_file = folder + json_filename; var success = LifestonedLoader.TryLoadWeenie(json_file, out var weenie); if (!success) { CommandHandlerHelper.WriteOutputInfo(session, $"Failed to load {json_file}"); return(null); } // output to sql success = LifestonedConverter.TryConvert(weenie, out var output); if (!success) { CommandHandlerHelper.WriteOutputInfo(session, $"Failed to convert {json_file}"); return(null); } var sqlFolder = folder.Replace("json", "sql"); var di = new DirectoryInfo(sqlFolder); if (!di.Exists) { di.Create(); } var sqlFilename = ""; try { if (output.LastModified == DateTime.MinValue) { output.LastModified = DateTime.UtcNow; } sqlFilename = converter.GetDefaultFileName(output); var sqlFile = new StreamWriter(sqlFolder + sqlFilename); converter.CreateSQLDELETEStatement(output, sqlFile); sqlFile.WriteLine(); converter.CreateSQLINSERTStatement(output, sqlFile); sqlFile.Close(); } catch (Exception e) { Console.WriteLine(e); CommandHandlerHelper.WriteOutputInfo(session, $"Failed to convert {json_file}"); return(null); } CommandHandlerHelper.WriteOutputInfo(session, $"Converted {json_filename} to {sqlFilename}"); return(sqlFilename); }
public static void HandleExportSql(Session session, params string[] parameters) { DirectoryInfo di = VerifyContentFolder(session, false); var sep = Path.DirectorySeparatorChar; if (!uint.TryParse(parameters[0], out var wcid)) { CommandHandlerHelper.WriteOutputInfo(session, $"{parameters[0]} not a valid wcid"); return; } var weenie = DatabaseManager.World.GetCachedWeenie(wcid); if (weenie == null) { CommandHandlerHelper.WriteOutputInfo(session, $"Couldn't find weenie {wcid}"); return; } var sql_folder = $"{di.FullName}{sep}sql{sep}weenies{sep}"; di = new DirectoryInfo(sql_folder); if (!di.Exists) { di.Create(); } var converter = new WeenieSQLWriter(); converter.WeenieNames = DatabaseManager.World.GetAllWeenieNames(); converter.SpellNames = DatabaseManager.World.GetAllSpellNames(); converter.TreasureDeath = DatabaseManager.World.GetAllTreasureDeath(); converter.TreasureWielded = DatabaseManager.World.GetAllTreasureWielded(); var sql_filename = converter.GetDefaultFileName(weenie); var writer = new StreamWriter(sql_folder + sql_filename); try { converter.CreateSQLDELETEStatement(weenie, writer); writer.WriteLine(); converter.CreateSQLINSERTStatement(weenie, writer); writer.Close(); } catch (Exception e) { Console.WriteLine(e); CommandHandlerHelper.WriteOutputInfo(session, $"Failed to convert {weenie.ClassId} - {weenie.ClassName}"); return; } CommandHandlerHelper.WriteOutputInfo(session, $"Exported {sql_folder}{sql_filename}"); }
public static bool json2sql(FileInfo fi) { if (Converter == null) { Converter = new WeenieSQLWriter(); Converter.WeenieNames = IDToString.Reader.GetIDToNames("WeenieName.txt"); Converter.SpellNames = IDToString.Reader.GetIDToNames("SpellName.txt"); Converter.TreasureDeath = IDToString.Reader.GetIDToTier("TreasureDeath.txt"); Converter.TreasureWielded = IDToString.Reader.GetIDToWieldList("TreasureWielded.txt"); } // read json into lsd weenie if (!LifestonedLoader.TryLoadWeenie(fi.FullName, out var weenie)) { Console.WriteLine($"Failed to parse {fi.FullName}"); return(false); } // convert to ace weenie if (!LifestonedConverter.TryConvert(weenie, out var output)) { Console.WriteLine($"Failed to convert {fi.FullName}"); return(false); } // output to sql try { if (output.LastModified == DateTime.MinValue) { output.LastModified = DateTime.UtcNow; } var sqlFilename = Converter.GetDefaultFileName(output); var sqlFile = new StreamWriter(fi.DirectoryName + Path.DirectorySeparatorChar + sqlFilename); Converter.CreateSQLDELETEStatement(output, sqlFile); sqlFile.WriteLine(); Converter.CreateSQLINSERTStatement(output, sqlFile); var metadata = new ACE.Adapter.GDLE.Models.Metadata(weenie); if (metadata.HasInfo) { var jsonEx = JsonConvert.SerializeObject(metadata, Formatting.Indented); sqlFile.WriteLine($"\n/* Lifestoned Changelog:\n{jsonEx}\n*/"); } sqlFile.Close(); Console.WriteLine($"Converted {fi.FullName} to {fi.DirectoryName}{Path.DirectorySeparatorChar}{sqlFilename}"); } catch (Exception e) { Console.WriteLine(e); Console.WriteLine($"Failed to convert {fi.FullName}"); return(false); } return(true); }
/// <summary> /// Converts a json file to sql file /// </summary> public static string json2sql(Session session, string folder, string json_filename, WeenieSQLWriter converter) { var json_file = folder + json_filename; // read json into lsd weenie var success = LifestonedLoader.TryLoadWeenie(json_file, out var weenie); if (!success) { CommandHandlerHelper.WriteOutputInfo(session, $"Failed to load {json_file}"); return(null); } // convert to ace weenie success = LifestonedConverter.TryConvert(weenie, out var output); if (!success) { CommandHandlerHelper.WriteOutputInfo(session, $"Failed to convert {json_file}"); return(null); } // output to sql var sqlFolder = folder.Replace("json", "sql"); var di = new DirectoryInfo(sqlFolder); if (!di.Exists) { di.Create(); } var sqlFilename = ""; try { if (output.LastModified == DateTime.MinValue) { output.LastModified = DateTime.UtcNow; } sqlFilename = converter.GetDefaultFileName(output); var sqlFile = new StreamWriter(sqlFolder + sqlFilename); converter.CreateSQLDELETEStatement(output, sqlFile); sqlFile.WriteLine(); converter.CreateSQLINSERTStatement(output, sqlFile); var metadata = new Adapter.GDLE.Models.Metadata(weenie); if (metadata.HasInfo) { var jsonEx = JsonConvert.SerializeObject(metadata, LifestonedConverter.SerializerSettings); sqlFile.WriteLine($"\n/* Lifestoned Changelog:\n{jsonEx}\n*/"); } sqlFile.Close(); } catch (Exception e) { Console.WriteLine(e); CommandHandlerHelper.WriteOutputInfo(session, $"Failed to convert {json_file}"); return(null); } CommandHandlerHelper.WriteOutputInfo(session, $"Converted {json_filename} to {sqlFilename}"); return(sqlFilename); }
public static bool json2sql_weenie(FileInfo fi, string[] lines = null, DirectoryInfo outputFolder = null) { if (WeenieSQLWriter == null) { WeenieSQLWriter = new WeenieSQLWriter(); WeenieSQLWriter.WeenieNames = IDToString.Reader.GetIDToNames("WeenieName.txt"); WeenieSQLWriter.SpellNames = IDToString.Reader.GetIDToNames("SpellName.txt"); WeenieSQLWriter.TreasureDeath = IDToString.Reader.GetIDToTier("TreasureDeath.txt"); WeenieSQLWriter.TreasureWielded = IDToString.Reader.GetIDToWieldList("TreasureWielded.txt"); } // read json into lsd weenie Lifestoned.DataModel.Gdle.Weenie weenie = null; if (lines == null) { if (!LifestonedLoader.TryLoadWeenie(fi.FullName, out weenie)) { Console.WriteLine($"Failed to parse {fi.FullName}"); return(false); } } else { if (!LifestonedLoader.TryLoadWeenie(lines, out weenie)) { Console.WriteLine($"Failed to parse weenie"); return(false); } } // convert to ace weenie if (!LifestonedConverter.TryConvert(weenie, out var output)) { Console.WriteLine($"Failed to convert {fi.FullName}"); return(false); } // output to sql try { if (output.LastModified == DateTime.MinValue) { output.LastModified = DateTime.UtcNow; } StreamWriter sqlFile = null; string sqlFilename = null; MemoryStream memoryStream = null; if (lines == null) { sqlFilename = WeenieSQLWriter.GetDefaultFileName(output); var sqlFolder = outputFolder ?? fi.Directory; sqlFile = new StreamWriter(sqlFolder.FullName + Path.DirectorySeparatorChar + sqlFilename); } else { memoryStream = new MemoryStream(); sqlFile = new StreamWriter(memoryStream); } WeenieSQLWriter.CreateSQLDELETEStatement(output, sqlFile); sqlFile.WriteLine(); WeenieSQLWriter.CreateSQLINSERTStatement(output, sqlFile); var metadata = new Metadata(weenie); if (metadata.HasInfo) { var jsonEx = JsonConvert.SerializeObject(metadata, Formatting.Indented); sqlFile.WriteLine($"\n/* Lifestoned Changelog:\n{jsonEx}\n*/"); } sqlFile.Close(); if (lines == null) { Output = memoryStream.ToString(); return(true); } Console.WriteLine($"Converted {fi.FullName} to {fi.DirectoryName}{Path.DirectorySeparatorChar}{sqlFilename}"); } catch (Exception e) { Console.WriteLine(e); Console.WriteLine($"Failed to convert {fi.FullName}"); return(false); } return(true); }