Browse Source

fixed egmysqlsave and savetoolsinterface

master
jkpete 4 months ago
parent
commit
d1b7cee741
  1. 4
      addons/EGFramework/Module/SaveTools/EGByteSave.cs
  2. 9
      addons/EGFramework/Module/SaveTools/EGCsvSave.cs
  3. 6
      addons/EGFramework/Module/SaveTools/EGJsonSave.cs
  4. 9
      addons/EGFramework/Module/SaveTools/EGLiteDBSave.cs
  5. 48
      addons/EGFramework/Module/SaveTools/EGMysqlSave.cs
  6. 3
      addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs

4
addons/EGFramework/Module/SaveTools/EGByteSave.cs

@ -110,6 +110,10 @@ namespace EGFramework
throw new NotImplementedException(); throw new NotImplementedException();
} }
public bool ContainsKey(string objectKey)
{
throw new NotImplementedException();
}
} }
public interface IEGByteInit{ public interface IEGByteInit{

9
addons/EGFramework/Module/SaveTools/EGCsvSave.cs

@ -310,6 +310,15 @@ namespace EGFramework
return CsvDataHeader.Keys; return CsvDataHeader.Keys;
} }
public bool ContainsKey(string dataKey)
{
return CsvDataHeader.ContainsKey(dataKey);
}
public bool ContainsData(string dataKey, object id)
{
return CsvDataBlock.Count() > 0 && id.GetType() == typeof(int) && (int)id < CsvDataBlock.Count();
}
} }
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]

6
addons/EGFramework/Module/SaveTools/EGJsonSave.cs

@ -126,5 +126,11 @@ namespace EGFramework
} }
return keys; return keys;
} }
public bool ContainsKey(string objectKey)
{
return SaveObject.ContainsKey(objectKey);
}
} }
} }

9
addons/EGFramework/Module/SaveTools/EGLiteDBSave.cs

@ -90,5 +90,14 @@ namespace EGFramework
return Database.GetCollectionNames(); return Database.GetCollectionNames();
} }
public bool ContainsKey(string dataKey)
{
return GetKeys().Contains(dataKey);
}
public bool ContainsData(string dataKey, object id)
{
return Database.GetCollection(dataKey).Exists((BsonValue)id);
}
} }
} }

48
addons/EGFramework/Module/SaveTools/EGMysqlSave.cs

@ -34,8 +34,6 @@ namespace EGFramework{
} }
} }
public IEnumerable<TData> GetAll<TData>(string dataKey) where TData : new() public IEnumerable<TData> GetAll<TData>(string dataKey) where TData : new()
{ {
IEnumerable<TData> result = Connection.Query<TData>("select * from "+dataKey); IEnumerable<TData> result = Connection.Query<TData>("select * from "+dataKey);
@ -56,11 +54,25 @@ namespace EGFramework{
public void SetData<TData>(string dataKey, TData data, object id) public void SetData<TData>(string dataKey, TData data, object id)
{ {
throw new NotImplementedException(); if(data == null)
{
throw new ArgumentNullException(nameof(data));
}else{
if(this.ContainsData(dataKey,id)){
UpdateData(dataKey,data,id);
}else{
AddData(dataKey,data);
}
//EG.Print("data:" + data);
}
} }
public void AddData<TData>(string dataKey, TData data) public void AddData<TData>(string dataKey, TData data)
{ {
if(data == null)
{
throw new ArgumentNullException(nameof(data));
}
// throw new System.NotImplementedException(); // throw new System.NotImplementedException();
Type DataType = typeof(TData); Type DataType = typeof(TData);
var properties = DataType.GetProperties(); var properties = DataType.GetProperties();
@ -95,13 +107,16 @@ namespace EGFramework{
public void RemoveData<TData>(string dataKey, object id) public void RemoveData<TData>(string dataKey, object id)
{ {
Type DataType = typeof(TData);
int count = Connection.Execute(@"delete from "+dataKey+" where ID = @ID",new {ID = id}); int count = Connection.Execute(@"delete from "+dataKey+" where ID = @ID",new {ID = id});
//EG.Print("count:" + count); //EG.Print("count:" + count);
} }
public void UpdateData<TData>(string dataKey, TData data, object id) public void UpdateData<TData>(string dataKey, TData data, object id)
{ {
if(data == null)
{
throw new ArgumentNullException(nameof(data));
}
Type DataType = typeof(TData); Type DataType = typeof(TData);
EG.Print("----"+DataType.Name); EG.Print("----"+DataType.Name);
var properties = DataType.GetProperties(); var properties = DataType.GetProperties();
@ -121,8 +136,31 @@ namespace EGFramework{
public IEnumerable<string> GetKeys() public IEnumerable<string> GetKeys()
{ {
throw new NotImplementedException(); IEnumerable<string> result = Connection.Query<string>("show tables");
return result;
} }
public bool ContainsKey(string dataKey)
{
return GetKeys().Contains(dataKey);
}
public bool ContainsData(string dataKey, object id)
{
try
{
var result = Connection.QuerySingle("select * from "+dataKey+" where ID = @ID",new {ID = id});
if(result == null){
return false;
}else{
return true;
}
}
catch (System.Exception)
{
return false;
}
}
} }
} }

3
addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs

@ -19,12 +19,15 @@ namespace EGFramework
public interface IEGSaveObjectReadOnly{ public interface IEGSaveObjectReadOnly{
TObject GetObject<TObject>(string objectKey) where TObject : new(); TObject GetObject<TObject>(string objectKey) where TObject : new();
IEnumerable<string> GetKeys(); IEnumerable<string> GetKeys();
bool ContainsKey(string objectKey);
} }
public interface IEGSaveDataReadOnly{ public interface IEGSaveDataReadOnly{
TData GetData<TData>(string dataKey,object id) where TData : new(); TData GetData<TData>(string dataKey,object id) where TData : new();
IEnumerable<TData> GetAll<TData>(string dataKey) where TData : new(); IEnumerable<TData> GetAll<TData>(string dataKey) where TData : new();
IEnumerable<TData> FindData<TData>(string dataKey,Expression<Func<TData, bool>> expression) where TData : new(); IEnumerable<TData> FindData<TData>(string dataKey,Expression<Func<TData, bool>> expression) where TData : new();
IEnumerable<string> GetKeys(); IEnumerable<string> GetKeys();
bool ContainsKey(string dataKey);
bool ContainsData(string dataKey,object id);
} }
public interface IEGSaveObject : IEGSaveObjectReadOnly{ public interface IEGSaveObject : IEGSaveObjectReadOnly{

Loading…
Cancel
Save