diff --git a/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotSaveTable.cs b/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotSaveTable.cs index 84be5c6..8426a4b 100644 --- a/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotSaveTable.cs +++ b/addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotSaveTable.cs @@ -31,6 +31,7 @@ namespace EGFramework.UI } this.Vertical = true; CurrentDataKey = key; + EmptyData = typeof(T).EGenerateEmptyDictiontaryByType(); QueryPage.Register(() => QueryPageData()); InitFunctionMenu(); InitTitle(typeof(T).EGenerateDictiontaryByType()); @@ -50,6 +51,12 @@ namespace EGFramework.UI GD.Print(TableData.Count()); } + public override void OnAddData(Dictionary data) + { + // base.OnAddData(data); + SaveData.AddData(CurrentDataKey, data); + } + public void ModifyData(Dictionary eData) { string primaryKey = ""; diff --git a/addons/EGFramework/Module/SaveTools/Data/EGCsvSave.cs b/addons/EGFramework/Module/SaveTools/Data/EGCsvSave.cs index 8746e5e..be78d52 100644 --- a/addons/EGFramework/Module/SaveTools/Data/EGCsvSave.cs +++ b/addons/EGFramework/Module/SaveTools/Data/EGCsvSave.cs @@ -279,6 +279,21 @@ namespace EGFramework this.WriteDataBlock(DefaultPath); } + public void AddData(string datakey, Dictionary data) + { + if(IsReadOnly){ + throw new Exception("This file is readonly! can't set any data to file."); + } + string[] csvSet = new string[CsvDataHeader.Keys.Count()]; + foreach(KeyValuePair param in data){ + if(CsvDataHeader.ContainsKey(param.Key)){ + csvSet[CsvDataHeader[param.Key]] = param.Value.ToString(); + } + } + CsvDataBlock.Add(csvSet); + this.WriteDataBlock(DefaultPath); + } + public int RemoveData(string dataKey, object id) { if (IsReadOnly) diff --git a/addons/EGFramework/Module/SaveTools/Data/EGDapper.cs b/addons/EGFramework/Module/SaveTools/Data/EGDapper.cs index 9205aaf..56ab638 100644 --- a/addons/EGFramework/Module/SaveTools/Data/EGDapper.cs +++ b/addons/EGFramework/Module/SaveTools/Data/EGDapper.cs @@ -94,6 +94,33 @@ namespace EGFramework int count = Connection.Execute(sql,data); //EG.Print("count:" + count); } + public void AddData(string dataKey,Dictionary data) + { + if(data == null) + { + throw new ArgumentNullException(nameof(data)); + } + string keySet = ""; + string keySetParam = ""; + foreach(KeyValuePair param in data){ + if (param.Key == "ID" || param.Key == "Id" || param.Key == "id"){ + continue; + } + keySet += param.Key + ","; + if (param.Value is string) + { + keySetParam += "'" + param.Value + "',"; + } + else + { + keySetParam += param.Value + ","; + } + } + keySet = keySet.TrimEnd(','); + keySetParam = keySetParam.TrimEnd(','); + EG.Print("insert into "+dataKey+"("+keySet+") values("+keySetParam+")"); + int count = Connection.Execute("insert into "+dataKey+"("+keySet+") values("+keySetParam+")"); + } public int RemoveData(string dataKey, object id) { diff --git a/addons/EGFramework/Module/SaveTools/Data/EGLiteDBSave.cs b/addons/EGFramework/Module/SaveTools/Data/EGLiteDBSave.cs index 901db60..84e63ca 100644 --- a/addons/EGFramework/Module/SaveTools/Data/EGLiteDBSave.cs +++ b/addons/EGFramework/Module/SaveTools/Data/EGLiteDBSave.cs @@ -83,6 +83,16 @@ namespace EGFramework collection.Insert(data); } + public void AddData(string dataKey, Dictionary data) + { + ILiteCollection collection = Database.GetCollection(dataKey); + BsonDocument keyValuePairs = new BsonDocument(); + foreach (var param in data) { + keyValuePairs.Add(param.Key, new BsonValue(param.Value)); + } + collection.Insert(keyValuePairs); + } + public int RemoveData(string dataKey, object id) { ILiteCollection collection = Database.GetCollection(dataKey); @@ -95,7 +105,7 @@ namespace EGFramework { return 0; } - + } public void UpdateData(string dataKey, TData data, object id) diff --git a/addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs b/addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs index 487c538..e7f9f76 100644 --- a/addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs +++ b/addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs @@ -77,6 +77,7 @@ namespace EGFramework void SetData(string dataKey,TData data,object id); void AddData(string dataKey,TData data); void AddData(string dataKey,IEnumerable data); + void AddData(string datakey, Dictionary data); int RemoveData(string dataKey,object id); void UpdateData(string dataKey, Dictionary data, object id); void UpdateData(string dataKey,TData data,object id);