@@ -16,8 +16,10 @@ public class FlowLauncherJsonStorageTopMostRecord
16
16
17
17
public FlowLauncherJsonStorageTopMostRecord ( )
18
18
{
19
+ #pragma warning disable CS0618 // Type or member is obsolete
19
20
// Get old data & new data
20
21
var topMostRecordStorage = new FlowLauncherJsonStorage < TopMostRecord > ( ) ;
22
+ #pragma warning restore CS0618 // Type or member is obsolete
21
23
_topMostRecordStorage = new FlowLauncherJsonStorage < MultipleTopMostRecord > ( ) ;
22
24
23
25
// Check if data exist
@@ -43,7 +45,16 @@ public FlowLauncherJsonStorageTopMostRecord()
43
45
{
44
46
// Migrate old data to new data
45
47
_topMostRecord = _topMostRecordStorage . Load ( ) ;
46
- _topMostRecord . Add ( topMostRecordStorage . Load ( ) ) ;
48
+ var oldTopMostRecord = topMostRecordStorage . Load ( ) ;
49
+ if ( oldTopMostRecord == null || oldTopMostRecord . records . IsEmpty ) return ;
50
+ foreach ( var record in oldTopMostRecord . records )
51
+ {
52
+ _topMostRecord . records . AddOrUpdate ( record . Key , new ConcurrentBag < Record > { record . Value } , ( key , oldValue ) =>
53
+ {
54
+ oldValue . Add ( record . Value ) ;
55
+ return oldValue ;
56
+ } ) ;
57
+ }
47
58
48
59
// Delete old data and save the new data
49
60
try
@@ -87,6 +98,7 @@ public void AddOrUpdate(Result result)
87
98
/// <summary>
88
99
/// Old data structure to support only one top most record for the same query
89
100
/// </summary>
101
+ [ Obsolete ( "Use MultipleTopMostRecord instead. This class will be removed in future versions." ) ]
90
102
internal class TopMostRecord
91
103
{
92
104
[ JsonInclude ]
@@ -147,23 +159,6 @@ internal class MultipleTopMostRecord
147
159
[ JsonConverter ( typeof ( ConcurrentDictionaryConcurrentBagConverter ) ) ]
148
160
public ConcurrentDictionary < string , ConcurrentBag < Record > > records { get ; private set ; } = new ( ) ;
149
161
150
- internal void Add ( TopMostRecord topMostRecord )
151
- {
152
- if ( topMostRecord == null || topMostRecord . records . IsEmpty )
153
- {
154
- return ;
155
- }
156
-
157
- foreach ( var record in topMostRecord . records )
158
- {
159
- records . AddOrUpdate ( record . Key , new ConcurrentBag < Record > { record . Value } , ( key , oldValue ) =>
160
- {
161
- oldValue . Add ( record . Value ) ;
162
- return oldValue ;
163
- } ) ;
164
- }
165
- }
166
-
167
162
internal bool IsTopMost ( Result result )
168
163
{
169
164
// origin query is null when user select the context menu item directly of one item from query list
0 commit comments