diff --git a/Builder/IISMainHandler/build.txt b/Builder/IISMainHandler/build.txt
index 6d706ee..721527c 100644
--- a/Builder/IISMainHandler/build.txt
+++ b/Builder/IISMainHandler/build.txt
@@ -1 +1 @@
-892
\ No newline at end of file
+896
\ No newline at end of file
diff --git a/Common/Common.csproj b/Common/Common.csproj
index 94fa863..562a994 100644
--- a/Common/Common.csproj
+++ b/Common/Common.csproj
@@ -103,6 +103,7 @@
+
diff --git a/Common/IComplexSqlObjectTableSpec.cs b/Common/IComplexSqlObjectTableSpec.cs
new file mode 100644
index 0000000..a6a197b
--- /dev/null
+++ b/Common/IComplexSqlObjectTableSpec.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace FLocal.Common {
+ public interface IComplexSqlObjectTableSpec : ISqlObjectTableSpec {
+
+ void refreshSqlObjectAndRelated(int id);
+
+ }
+}
diff --git a/Common/dataobjects/Board.cs b/Common/dataobjects/Board.cs
index 8c9e5ea..b8fb7bc 100644
--- a/Common/dataobjects/Board.cs
+++ b/Common/dataobjects/Board.cs
@@ -11,7 +11,7 @@ using FLocal.Common.actions;
namespace FLocal.Common.dataobjects {
public class Board : SqlObject {
- public class TableSpec : ISqlObjectTableSpec {
+ public class TableSpec : IComplexSqlObjectTableSpec {
public const string TABLE = "Boards";
public const string FIELD_ID = "Id";
public const string FIELD_SORTORDER = "SortOrder";
@@ -27,6 +27,10 @@ namespace FLocal.Common.dataobjects {
public string name { get { return TABLE; } }
public string idName { get { return FIELD_ID; } }
public void refreshSqlObject(int id) { Refresh(id); }
+ public void refreshSqlObjectAndRelated(int id) {
+ Refresh(id);
+ LoadById(id).subBoards_Reset();
+ }
}
public class ReadMarkerTableSpec : ISqlObjectTableSpec {
diff --git a/Common/dataobjects/Category.cs b/Common/dataobjects/Category.cs
index 58f7587..e93001a 100644
--- a/Common/dataobjects/Category.cs
+++ b/Common/dataobjects/Category.cs
@@ -9,7 +9,7 @@ using System.Xml.Linq;
namespace FLocal.Common.dataobjects {
public class Category : SqlObject {
- public class TableSpec : ISqlObjectTableSpec {
+ public class TableSpec : IComplexSqlObjectTableSpec {
public const string TABLE = "Categories";
public const string FIELD_ID = "Id";
public const string FIELD_SORTORDER = "SortOrder";
@@ -19,6 +19,10 @@ namespace FLocal.Common.dataobjects {
public string name { get { return TABLE; } }
public string idName { get { return FIELD_ID; } }
public void refreshSqlObject(int id) { Refresh(id); }
+ public void refreshSqlObjectAndRelated(int id) {
+ Refresh(id);
+ LoadById(id).subBoards_Reset();
+ }
}
protected override ISqlObjectTableSpec table { get { return TableSpec.instance; } }
diff --git a/IISMainHandler/handlers/request/maintenance/CleanCacheHandler.cs b/IISMainHandler/handlers/request/maintenance/CleanCacheHandler.cs
index 8976087..b096b6f 100644
--- a/IISMainHandler/handlers/request/maintenance/CleanCacheHandler.cs
+++ b/IISMainHandler/handlers/request/maintenance/CleanCacheHandler.cs
@@ -23,9 +23,13 @@ namespace FLocal.IISHandler.handlers.request.maintenance {
int start = int.Parse(context.httprequest.Form["start"]);
int length = int.Parse(context.httprequest.Form["length"]);
ISqlObjectTableSpec tableSpec = TableManager.TABLES[table];
- for(int i=0; i