/MaximusParserX/Dump/SQL/QueryResponseHandler.cs

https://github.com/devmaximus/MaximusParserX · C# · 239 lines · 209 code · 30 blank · 0 comment · 25 complexity · f2d551f5e7fc9bd5073117d712efeed5 MD5 · raw file

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace MaximusParserX.Dump.SQL
  6. {
  7. public static class QueryResponseHandler
  8. {
  9. public static readonly IDictionary<string, MaximusParserX.Dump.SQL.Custom.creature_template> CreatureTemplateList = new Dictionary<string, MaximusParserX.Dump.SQL.Custom.creature_template>();
  10. public static readonly IDictionary<string, MaximusParserX.Dump.SQL.Custom.quest_template> QuestTemplateList = new Dictionary<string, MaximusParserX.Dump.SQL.Custom.quest_template>();
  11. public static readonly IDictionary<string, MaximusParserX.Dump.SQL.Custom.creature_equip_template> CreatureEquipTemplateList = new Dictionary<string, MaximusParserX.Dump.SQL.Custom.creature_equip_template>();
  12. public static readonly IDictionary<string, MaximusParserX.Dump.SQL.Custom.gameobject_template> GameObjectTemplateList = new Dictionary<string, MaximusParserX.Dump.SQL.Custom.gameobject_template>();
  13. public static readonly IDictionary<string, MaximusParserX.Dump.SQL.Custom.item_template> ItemTemplateList = new Dictionary<string, MaximusParserX.Dump.SQL.Custom.item_template>();
  14. public static readonly IDictionary<string, MaximusParserX.Dump.SQL.Custom.npc_text> NPCTextList = new Dictionary<string, MaximusParserX.Dump.SQL.Custom.npc_text>();
  15. public static readonly IDictionary<string, MaximusParserX.Dump.SQL.Custom.page_text> PageTextList = new Dictionary<string, MaximusParserX.Dump.SQL.Custom.page_text>();
  16. public static readonly IDictionary<string, MaximusParserX.Dump.SQL.Custom.quest_poi> QuestPOIList = new Dictionary<string, MaximusParserX.Dump.SQL.Custom.quest_poi>();
  17. public static List<string> DumpToSQLFile()
  18. {
  19. var result = new List<string>();
  20. result.Add(DumpCreatureTemplateInsert());
  21. result.Add(DumpQuestTemplateInsert());
  22. result.Add(DumpCreatureEquipTemplateInsert());
  23. result.Add(DumpGameObjectTemplateInsert());
  24. result.Add(DumpItemTemplateInsert());
  25. result.Add(DumpNPCTextInsert());
  26. result.Add(DumpPageTextInsert());
  27. result.Add(DumpQuestPOIInsert());
  28. CreatureTemplateList.Clear();
  29. QuestTemplateList.Clear();
  30. CreatureEquipTemplateList.Clear();
  31. GameObjectTemplateList.Clear();
  32. ItemTemplateList.Clear();
  33. NPCTextList.Clear();
  34. PageTextList.Clear();
  35. QuestPOIList.Clear();
  36. return result;
  37. }
  38. public static void AddQuestTemplate(int clientbuildamount, MaximusParserX.Dump.SQL.Custom.quest_template quest_template)
  39. {
  40. var key = string.Format("{0}_{1}", clientbuildamount, quest_template.entry);
  41. if (!Dump.SQL.QueryResponseHandler.QuestTemplateList.ContainsKey(key))
  42. {
  43. quest_template.clientbuild = clientbuildamount;
  44. Dump.SQL.QueryResponseHandler.QuestTemplateList.Add(key, quest_template);
  45. }
  46. }
  47. public static void AddCreatureTemplate(int clientbuildamount, MaximusParserX.Dump.SQL.Custom.creature_template creature_template)
  48. {
  49. var key = string.Format("{0}_{1}", clientbuildamount, creature_template.entry);
  50. if (!Dump.SQL.QueryResponseHandler.CreatureTemplateList.ContainsKey(key))
  51. {
  52. creature_template.clientbuild = clientbuildamount;
  53. Dump.SQL.QueryResponseHandler.CreatureTemplateList.Add(key, creature_template);
  54. }
  55. }
  56. public static void AddItemTemplate(int clientbuildamount, MaximusParserX.Dump.SQL.Custom.item_template item_template)
  57. {
  58. var key = string.Format("{0}_{1}", clientbuildamount, item_template.entry);
  59. if (!Dump.SQL.QueryResponseHandler.ItemTemplateList.ContainsKey(key))
  60. {
  61. item_template.clientbuild = clientbuildamount;
  62. Dump.SQL.QueryResponseHandler.ItemTemplateList.Add(key, item_template);
  63. }
  64. }
  65. public static void AddNPCText(int clientbuildamount, MaximusParserX.Dump.SQL.Custom.npc_text npc_text)
  66. {
  67. var key = string.Format("{0}_{1}", clientbuildamount, npc_text.id);
  68. if (!Dump.SQL.QueryResponseHandler.NPCTextList.ContainsKey(key))
  69. {
  70. npc_text.clientbuild = clientbuildamount;
  71. Dump.SQL.QueryResponseHandler.NPCTextList.Add(key, npc_text);
  72. }
  73. }
  74. public static void AddPageText(int clientbuildamount, MaximusParserX.Dump.SQL.Custom.page_text page_text)
  75. {
  76. var key = string.Format("{0}_{1}", clientbuildamount, page_text.entry);
  77. if (!Dump.SQL.QueryResponseHandler.NPCTextList.ContainsKey(key))
  78. {
  79. page_text.clientbuild = clientbuildamount;
  80. Dump.SQL.QueryResponseHandler.PageTextList.Add(key, page_text);
  81. }
  82. }
  83. public static void AddGameObjectTemplate(int clientbuildamount, MaximusParserX.Dump.SQL.Custom.gameobject_template gameobject_template)
  84. {
  85. var key = string.Format("{0}_{1}", clientbuildamount, gameobject_template.entry);
  86. if (!Dump.SQL.QueryResponseHandler.GameObjectTemplateList.ContainsKey(key))
  87. {
  88. gameobject_template.clientbuild = clientbuildamount;
  89. Dump.SQL.QueryResponseHandler.GameObjectTemplateList.Add(key, gameobject_template);
  90. }
  91. }
  92. public static string DumpQuestPOIInsert()
  93. {
  94. if (QuestPOIList.Count == 0) return string.Empty;
  95. var file = "QuestPOILog_" + DateTime.Now.ToString("MM-dd-yyyy-hh-mm-ss") + ".sql";
  96. var quest_pois = QuestPOIList.OrderByDescending(t => t.Key);
  97. using (var sw = new System.IO.StreamWriter(file))
  98. {
  99. foreach (var quest_poi in quest_pois)
  100. {
  101. sw.WriteLine(quest_poi.Value.GetDeleteCommand());
  102. sw.WriteLine(quest_poi.Value.GetInsertCommand());
  103. if (quest_poi.Value.quest_poi_points != null && quest_poi.Value.quest_poi_points.Any())
  104. {
  105. sw.WriteLine();
  106. sw.WriteLine(quest_poi.Value.quest_poi_points.First().Value.GetDeleteCommand());
  107. foreach (var quest_poi_point in quest_poi.Value.quest_poi_points)
  108. {
  109. sw.WriteLine(quest_poi_point.Value.GetInsertCommand());
  110. }
  111. }
  112. sw.WriteLine();
  113. }
  114. }
  115. return file;
  116. }
  117. public static string DumpPageTextInsert()
  118. {
  119. if (PageTextList.Count == 0) return string.Empty;
  120. var file = "PageTextInsertLog_" + DateTime.Now.ToString("MM-dd-yyyy-hh-mm-ss") + ".sql";
  121. using (var sw = new System.IO.StreamWriter(file))
  122. {
  123. foreach (var item in PageTextList.OrderByDescending(t => t.Value.clientbuild).ThenBy(t => t.Value.entry))
  124. {
  125. sw.WriteLine(item.Value.GetInsertCommand());
  126. }
  127. }
  128. return file;
  129. }
  130. public static string DumpNPCTextInsert()
  131. {
  132. if (NPCTextList.Count == 0) return string.Empty;
  133. var file = "NPCTextInsertLog_" + DateTime.Now.ToString("MM-dd-yyyy-hh-mm-ss") + ".sql";
  134. using (var sw = new System.IO.StreamWriter(file))
  135. {
  136. foreach (var item in NPCTextList.OrderByDescending(t => t.Value.clientbuild).ThenBy(t => t.Value.id))
  137. {
  138. sw.WriteLine(item.Value.GetInsertCommand());
  139. }
  140. }
  141. return file;
  142. }
  143. public static string DumpItemTemplateInsert()
  144. {
  145. if (ItemTemplateList.Count == 0) return string.Empty;
  146. var file = "ItemTemplateInsertLog_" + DateTime.Now.ToString("MM-dd-yyyy-hh-mm-ss") + ".sql";
  147. using (var sw = new System.IO.StreamWriter(file))
  148. {
  149. foreach (var item in ItemTemplateList.OrderByDescending(t => t.Value.clientbuild).ThenBy(t=> t.Value.entry))
  150. {
  151. sw.WriteLine(item.Value.GetInsertCommand());
  152. }
  153. }
  154. return file;
  155. }
  156. public static string DumpCreatureTemplateInsert()
  157. {
  158. if (CreatureTemplateList.Count == 0) return string.Empty;
  159. var file = "CreatureTemplateInsertLog_" + DateTime.Now.ToString("MM-dd-yyyy-hh-mm-ss") + ".sql";
  160. using (var sw = new System.IO.StreamWriter(file))
  161. {
  162. foreach (var item in CreatureTemplateList.OrderByDescending(t => t.Value.clientbuild).ThenBy(t => t.Value.entry))
  163. {
  164. sw.WriteLine(item.Value.GetInsertCommand());
  165. }
  166. }
  167. return file;
  168. }
  169. public static string DumpQuestTemplateInsert()
  170. {
  171. if (QuestTemplateList.Count == 0) return string.Empty;
  172. var file = "QuestTemplateInsertLog_" + DateTime.Now.ToString("MM-dd-yyyy-hh-mm-ss") + ".sql";
  173. using (var sw = new System.IO.StreamWriter(file))
  174. {
  175. foreach (var item in QuestTemplateList.OrderByDescending(t => t.Value.clientbuild).ThenBy(t => t.Value.entry))
  176. {
  177. sw.WriteLine(item.Value.GetInsertCommand());
  178. }
  179. }
  180. return file;
  181. }
  182. public static string DumpCreatureEquipTemplateInsert()
  183. {
  184. if (CreatureEquipTemplateList.Count == 0) return string.Empty;
  185. var file = "CreatureEquipTemplateInsertLog_" + DateTime.Now.ToString("MM-dd-yyyy-hh-mm-ss") + ".sql";
  186. using (var sw = new System.IO.StreamWriter(file))
  187. {
  188. foreach (var item in CreatureEquipTemplateList.OrderByDescending(t => t.Value.clientbuild).ThenBy(t=> t.Value.entry))
  189. {
  190. sw.WriteLine(item.Value.GetInsertCommand());
  191. }
  192. }
  193. return file;
  194. }
  195. public static string DumpGameObjectTemplateInsert()
  196. {
  197. if (GameObjectTemplateList.Count == 0) return string.Empty;
  198. var file = "GameObjectTemplateInsertLog_" + DateTime.Now.ToString("MM-dd-yyyy-hh-mm-ss") + ".sql";
  199. using (var sw = new System.IO.StreamWriter(file))
  200. {
  201. foreach (var item in GameObjectTemplateList.OrderByDescending(t => t.Value.clientbuild).ThenBy(t => t.Value.entry))
  202. {
  203. sw.WriteLine(item.Value.GetInsertCommand());
  204. }
  205. }
  206. return file;
  207. }
  208. }
  209. }