@@ -10,19 +10,23 @@ namespace Ajuna.ServiceLayer.Storage
1010 internal string Identifier { get ; private set ; }
1111 public Dictionary < string , T > Dictionary { get ; private set ; }
1212 public IStorageDataProvider DataProvider { get ; private set ; }
13- public IStorageChangeDelegate ChangeDelegate { get ; private set ; }
13+
14+ /// <summary>
15+ /// A ChangeDelegate can be added in order to act upon any Storage Changes
16+ /// </summary>
17+ public List < IStorageChangeDelegate > ChangeDelegates { get ; private set ; }
1418
1519 public TypedMapStorage ( string identifier , IStorageDataProvider dataProvider )
1620 {
1721 Identifier = identifier ;
1822 DataProvider = dataProvider ;
1923 }
2024
21- public TypedMapStorage ( string identifier , IStorageDataProvider dataProvider , IStorageChangeDelegate changeDelegate )
25+ public TypedMapStorage ( string identifier , IStorageDataProvider dataProvider , List < IStorageChangeDelegate > changeDelegates )
2226 {
2327 Identifier = identifier ;
2428 DataProvider = dataProvider ;
25- ChangeDelegate = changeDelegate ;
29+ ChangeDelegates = changeDelegates ;
2630 }
2731
2832 public async Task InitializeAsync ( string module , string moduleItem )
@@ -47,7 +51,7 @@ public void Update(string key, string data)
4751 {
4852 Dictionary . Remove ( key ) ;
4953 Log . Debug ( $ "[{ Identifier } ] item {{key}} was deleted.", key ) ;
50- ChangeDelegate ? . OnDelete ( Identifier , key , data ) ;
54+ ChangeDelegates ? . ForEach ( x => x . OnDelete ( Identifier , key , data ) ) ;
5155 }
5256 else
5357 {
@@ -58,13 +62,13 @@ public void Update(string key, string data)
5862 {
5963 Dictionary [ key ] = iType ;
6064 Log . Debug ( $ "[{ Identifier } ] item {{key}} was updated.", key ) ;
61- ChangeDelegate ? . OnUpdate ( Identifier , key , data ) ;
65+ ChangeDelegates ? . ForEach ( x => x . OnUpdate ( Identifier , key , data ) ) ;
6266 }
6367 else
6468 {
6569 Dictionary . Add ( key , iType ) ;
6670 Log . Debug ( $ "[{ Identifier } ] item {{key}} was created.", key ) ;
67- ChangeDelegate ? . OnCreate ( Identifier , key , data ) ;
71+ ChangeDelegates ? . ForEach ( x => x . OnCreate ( Identifier , key , data ) ) ;
6872 }
6973 }
7074 }
0 commit comments