11using System ;
22using System . Text . Json ;
3+ using System . Threading ;
34using System . Threading . Tasks ;
45using Blazored . SessionStorage . Serialization ;
56
@@ -16,7 +17,7 @@ public SessionStorageService(IStorageProvider storageProvider, IJsonSerializer s
1617 _serializer = serializer ;
1718 }
1819
19- public async ValueTask SetItemAsync < T > ( string key , T data )
20+ public async ValueTask SetItemAsync < T > ( string key , T data , CancellationToken ? cancellationToken = null )
2021 {
2122 if ( string . IsNullOrWhiteSpace ( key ) )
2223 throw new ArgumentNullException ( nameof ( key ) ) ;
@@ -27,12 +28,12 @@ public async ValueTask SetItemAsync<T>(string key, T data)
2728 return ;
2829
2930 var serialisedData = _serializer . Serialize ( data ) ;
30- await _storageProvider . SetItemAsync ( key , serialisedData ) . ConfigureAwait ( false ) ;
31+ await _storageProvider . SetItemAsync ( key , serialisedData , cancellationToken ) . ConfigureAwait ( false ) ;
3132
3233 RaiseOnChanged ( key , e . OldValue , data ) ;
3334 }
3435
35- public async ValueTask SetItemAsStringAsync ( string key , string data )
36+ public async ValueTask SetItemAsStringAsync ( string key , string data , CancellationToken ? cancellationToken = null )
3637 {
3738 if ( string . IsNullOrWhiteSpace ( key ) )
3839 throw new ArgumentNullException ( nameof ( key ) ) ;
@@ -45,17 +46,17 @@ public async ValueTask SetItemAsStringAsync(string key, string data)
4546 if ( e . Cancel )
4647 return ;
4748
48- await _storageProvider . SetItemAsync ( key , data ) . ConfigureAwait ( false ) ;
49+ await _storageProvider . SetItemAsync ( key , data , cancellationToken ) . ConfigureAwait ( false ) ;
4950
5051 RaiseOnChanged ( key , e . OldValue , data ) ;
5152 }
5253
53- public async ValueTask < T > GetItemAsync < T > ( string key )
54+ public async ValueTask < T > GetItemAsync < T > ( string key , CancellationToken ? cancellationToken = null )
5455 {
5556 if ( string . IsNullOrWhiteSpace ( key ) )
5657 throw new ArgumentNullException ( nameof ( key ) ) ;
5758
58- var serialisedData = await _storageProvider . GetItemAsync ( key ) . ConfigureAwait ( false ) ;
59+ var serialisedData = await _storageProvider . GetItemAsync ( key , cancellationToken ) . ConfigureAwait ( false ) ;
5960
6061 if ( string . IsNullOrWhiteSpace ( serialisedData ) )
6162 return default ;
@@ -72,33 +73,33 @@ public async ValueTask<T> GetItemAsync<T>(string key)
7273 }
7374 }
7475
75- public ValueTask < string > GetItemAsStringAsync ( string key )
76+ public ValueTask < string > GetItemAsStringAsync ( string key , CancellationToken ? cancellationToken = null )
7677 {
7778 if ( string . IsNullOrWhiteSpace ( key ) )
7879 throw new ArgumentNullException ( nameof ( key ) ) ;
7980
80- return _storageProvider . GetItemAsync ( key ) ;
81+ return _storageProvider . GetItemAsync ( key , cancellationToken ) ;
8182 }
8283
83- public ValueTask RemoveItemAsync ( string key )
84+ public ValueTask RemoveItemAsync ( string key , CancellationToken ? cancellationToken = null )
8485 {
8586 if ( string . IsNullOrWhiteSpace ( key ) )
8687 throw new ArgumentNullException ( nameof ( key ) ) ;
8788
88- return _storageProvider . RemoveItemAsync ( key ) ;
89+ return _storageProvider . RemoveItemAsync ( key , cancellationToken ) ;
8990 }
9091
91- public ValueTask ClearAsync ( )
92- => _storageProvider . ClearAsync ( ) ;
92+ public ValueTask ClearAsync ( CancellationToken ? cancellationToken = null )
93+ => _storageProvider . ClearAsync ( cancellationToken ) ;
9394
94- public ValueTask < int > LengthAsync ( )
95- => _storageProvider . LengthAsync ( ) ;
95+ public ValueTask < int > LengthAsync ( CancellationToken ? cancellationToken = null )
96+ => _storageProvider . LengthAsync ( cancellationToken ) ;
9697
97- public ValueTask < string > KeyAsync ( int index )
98- => _storageProvider . KeyAsync ( index ) ;
98+ public ValueTask < string > KeyAsync ( int index , CancellationToken ? cancellationToken = null )
99+ => _storageProvider . KeyAsync ( index , cancellationToken ) ;
99100
100- public ValueTask < bool > ContainKeyAsync ( string key )
101- => _storageProvider . ContainKeyAsync ( key ) ;
101+ public ValueTask < bool > ContainKeyAsync ( string key , CancellationToken ? cancellationToken = null )
102+ => _storageProvider . ContainKeyAsync ( key , cancellationToken ) ;
102103
103104 public void SetItem < T > ( string key , T data )
104105 {
0 commit comments