@@ -16,8 +16,10 @@ public class FlowLauncherJsonStorageTopMostRecord
1616
1717 public FlowLauncherJsonStorageTopMostRecord ( )
1818 {
19+ #pragma warning disable CS0618 // Type or member is obsolete
1920 // Get old data & new data
2021 var topMostRecordStorage = new FlowLauncherJsonStorage < TopMostRecord > ( ) ;
22+ #pragma warning restore CS0618 // Type or member is obsolete
2123 _topMostRecordStorage = new FlowLauncherJsonStorage < MultipleTopMostRecord > ( ) ;
2224
2325 // Check if data exist
@@ -43,7 +45,16 @@ public FlowLauncherJsonStorageTopMostRecord()
4345 {
4446 // Migrate old data to new data
4547 _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+ }
4758
4859 // Delete old data and save the new data
4960 try
@@ -87,6 +98,7 @@ public void AddOrUpdate(Result result)
8798 /// <summary>
8899 /// Old data structure to support only one top most record for the same query
89100 /// </summary>
101+ [ Obsolete ( "Use MultipleTopMostRecord instead. This class will be removed in future versions." ) ]
90102 internal class TopMostRecord
91103 {
92104 [ JsonInclude ]
@@ -147,23 +159,6 @@ internal class MultipleTopMostRecord
147159 [ JsonConverter ( typeof ( ConcurrentDictionaryConcurrentBagConverter ) ) ]
148160 public ConcurrentDictionary < string , ConcurrentBag < Record > > records { get ; private set ; } = new ( ) ;
149161
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-
167162 internal bool IsTopMost ( Result result )
168163 {
169164 // origin query is null when user select the context menu item directly of one item from query list
0 commit comments