Improved entity deletion
This commit is contained in:
@@ -117,6 +117,19 @@ public static class DatabaseHelper
|
|||||||
entityCache.RemoveAll(entity => entity.name == name);
|
entityCache.RemoveAll(entity => entity.name == name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int RemoveAllEntities(SQLHelper helper, string searchdomain)
|
||||||
|
{
|
||||||
|
Dictionary<string, dynamic> parameters = new()
|
||||||
|
{
|
||||||
|
{ "searchdomain", GetSearchdomainID(helper, searchdomain)}
|
||||||
|
};
|
||||||
|
|
||||||
|
helper.ExecuteSQLNonQuery("DELETE embedding.* FROM embedding JOIN datapoint dp ON id_datapoint = dp.id JOIN entity ON id_entity = entity.id WHERE entity.id_searchdomain = @searchdomain", parameters);
|
||||||
|
helper.ExecuteSQLNonQuery("DELETE datapoint.* FROM datapoint JOIN entity ON id_entity = entity.id WHERE entity.id_searchdomain = @searchdomain", parameters);
|
||||||
|
helper.ExecuteSQLNonQuery("DELETE attribute.* FROM attribute JOIN entity ON id_entity = entity.id WHERE entity.id_searchdomain = @searchdomain", parameters);
|
||||||
|
return helper.ExecuteSQLNonQuery("DELETE FROM entity WHERE entity.id_searchdomain = @searchdomain", parameters);
|
||||||
|
}
|
||||||
|
|
||||||
public static bool HasEntity(SQLHelper helper, string name, string searchdomain)
|
public static bool HasEntity(SQLHelper helper, string name, string searchdomain)
|
||||||
{
|
{
|
||||||
Dictionary<string, dynamic> parameters = new()
|
Dictionary<string, dynamic> parameters = new()
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ public class SQLHelper:IDisposable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ExecuteSQLNonQuery(string query, Dictionary<string, dynamic> parameters)
|
public int ExecuteSQLNonQuery(string query, Dictionary<string, dynamic> parameters)
|
||||||
{
|
{
|
||||||
lock (connection)
|
lock (connection)
|
||||||
{
|
{
|
||||||
@@ -52,7 +52,7 @@ public class SQLHelper:IDisposable
|
|||||||
{
|
{
|
||||||
command.Parameters.AddWithValue($"@{parameter.Key}", parameter.Value);
|
command.Parameters.AddWithValue($"@{parameter.Key}", parameter.Value);
|
||||||
}
|
}
|
||||||
command.ExecuteNonQuery();
|
return command.ExecuteNonQuery();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -100,12 +100,7 @@ public class SearchdomainManager
|
|||||||
public int DeleteSearchdomain(string searchdomain)
|
public int DeleteSearchdomain(string searchdomain)
|
||||||
{
|
{
|
||||||
Searchdomain searchdomain_ = GetSearchdomain(searchdomain);
|
Searchdomain searchdomain_ = GetSearchdomain(searchdomain);
|
||||||
int counter = 0;
|
int counter = DatabaseHelper.RemoveAllEntities(helper, searchdomain);
|
||||||
while (searchdomain_.entityCache.Count > 0)
|
|
||||||
{
|
|
||||||
DatabaseHelper.RemoveEntity(searchdomain_.entityCache, helper, searchdomain_.entityCache.First().name, searchdomain);
|
|
||||||
counter += 1;
|
|
||||||
}
|
|
||||||
_logger.LogDebug($"Number of entities deleted as part of deleting the searchdomain \"{searchdomain}\": {counter}");
|
_logger.LogDebug($"Number of entities deleted as part of deleting the searchdomain \"{searchdomain}\": {counter}");
|
||||||
helper.ExecuteSQLNonQuery("DELETE FROM searchdomain WHERE name = @name", new() {{"name", searchdomain}});
|
helper.ExecuteSQLNonQuery("DELETE FROM searchdomain WHERE name = @name", new() {{"name", searchdomain}});
|
||||||
searchdomains.Remove(searchdomain);
|
searchdomains.Remove(searchdomain);
|
||||||
|
|||||||
Reference in New Issue
Block a user