@@ -617,7 +617,7 @@ protected virtual async ValueTask OnProcessMessage(Message message, Cancellation
617617 break ;
618618
619619 case MessageTypes . QuoteChange :
620- ProcessQuotesMessage ( ( QuoteChangeMessage ) message ) ;
620+ await ProcessQuotesMessage ( ( QuoteChangeMessage ) message , cancellationToken ) ;
621621 break ;
622622
623623 case MessageTypes . Board :
@@ -629,31 +629,31 @@ protected virtual async ValueTask OnProcessMessage(Message message, Cancellation
629629 break ;
630630
631631 case MessageTypes . Security :
632- ProcessSecurityMessage ( ( SecurityMessage ) message ) ;
632+ await ProcessSecurityMessage ( ( SecurityMessage ) message , cancellationToken ) ;
633633 break ;
634634
635635 case MessageTypes . DataTypeInfo :
636636 ProcessDataTypeInfoMessage ( ( DataTypeInfoMessage ) message ) ;
637637 break ;
638638
639639 case MessageTypes . Level1Change :
640- ProcessLevel1ChangeMessage ( ( Level1ChangeMessage ) message ) ;
640+ await ProcessLevel1ChangeMessage ( ( Level1ChangeMessage ) message , cancellationToken ) ;
641641 break ;
642642
643643 case MessageTypes . News :
644- ProcessNewsMessage ( ( NewsMessage ) message ) ;
644+ await ProcessNewsMessage ( ( NewsMessage ) message , cancellationToken ) ;
645645 break ;
646646
647647 case MessageTypes . Execution :
648- ProcessExecutionMessage ( ( ExecutionMessage ) message ) ;
648+ await ProcessExecutionMessage ( ( ExecutionMessage ) message , cancellationToken ) ;
649649 break ;
650650
651651 case MessageTypes . Portfolio :
652652 ProcessPortfolioMessage ( ( PortfolioMessage ) message ) ;
653653 break ;
654654
655655 case MessageTypes . PositionChange :
656- ProcessPositionChangeMessage ( ( PositionChangeMessage ) message ) ;
656+ await ProcessPositionChangeMessage ( ( PositionChangeMessage ) message , cancellationToken ) ;
657657 break ;
658658
659659 //case MessageTypes.Time:
@@ -771,7 +771,7 @@ private async ValueTask ProcessSubscriptionFinishedMessage(SubscriptionFinishedM
771771
772772 await foreach ( var secMsg in message . Body . ExtractSecuritiesAsync ( ) . WithCancellation ( cancellationToken ) )
773773 {
774- ProcessSecurityMessage ( secMsg ) ;
774+ await ProcessSecurityMessage ( secMsg , cancellationToken ) ;
775775 secMsgs . Add ( secMsg ) ;
776776 }
777777
@@ -923,16 +923,16 @@ private void ProcessBoardMessage(BoardMessage message)
923923 RaiseReceived ( board , subscriptions , BoardReceived ) ;
924924 }
925925
926- private void ProcessSecurityMessage ( SecurityMessage message )
926+ private async ValueTask ProcessSecurityMessage ( SecurityMessage message , CancellationToken cancellationToken )
927927 {
928- var security = GetSecurity ( message . SecurityId , s =>
928+ var security = await GetSecurityAsync ( message . SecurityId , s =>
929929 {
930930 if ( ! UpdateSecurityByDefinition )
931931 return false ;
932932
933933 s . ApplyChanges ( message , ExchangeInfoProvider , OverrideSecurityData ) ;
934934 return true ;
935- } ) ;
935+ } , cancellationToken ) ;
936936
937937 var subscriptions = _subscriptionManager . ProcessLookupResponse ( message , security ) ;
938938 RaiseReceived ( security , subscriptions , SecurityReceived ) ;
@@ -946,7 +946,7 @@ private void ProcessDataTypeInfoMessage(DataTypeInfoMessage message)
946946 RaiseReceived ( dt , message , DataTypeReceived ) ;
947947 }
948948
949- private void ProcessLevel1ChangeMessage ( Level1ChangeMessage message )
949+ private async ValueTask ProcessLevel1ChangeMessage ( Level1ChangeMessage message , CancellationToken cancellationToken )
950950 {
951951 Security security = null ;
952952
@@ -955,7 +955,7 @@ private void ProcessLevel1ChangeMessage(Level1ChangeMessage message)
955955 if ( anyCanOnline != true )
956956 return ;
957957
958- security = EnsureGetSecurity ( message ) ;
958+ security = await EnsureGetSecurityAsync ( message , cancellationToken ) ;
959959
960960 if ( _entityCache . HasLevel1Info ( security ) )
961961 return ;
@@ -964,15 +964,15 @@ private void ProcessLevel1ChangeMessage(Level1ChangeMessage message)
964964#pragma warning disable CS0618 // Type or member is obsolete
965965 if ( UpdateSecurityByLevel1 )
966966 {
967- security ??= EnsureGetSecurity ( message ) ;
967+ security ??= await EnsureGetSecurityAsync ( message , cancellationToken ) ;
968968
969969 security . ApplyChanges ( message ) ;
970970 }
971971#pragma warning restore CS0618 // Type or member is obsolete
972972
973973 if ( ValuesChanged is not null )
974974 {
975- security ??= EnsureGetSecurity ( message ) ;
975+ security ??= await EnsureGetSecurityAsync ( message , cancellationToken ) ;
976976
977977 var time = message . ServerTime ;
978978 var info = _entityCache . GetSecurityValues ( security , time ) ;
@@ -1069,7 +1069,7 @@ private void ProcessPortfolioMessage(PortfolioMessage message)
10691069 RaiseReceived ( portfolio , message , PortfolioReceived ) ;
10701070 }
10711071
1072- private void ProcessPositionChangeMessage ( PositionChangeMessage message )
1072+ private async ValueTask ProcessPositionChangeMessage ( PositionChangeMessage message , CancellationToken cancellationToken )
10731073 {
10741074 if ( ! message . StrategyId . IsEmpty ( ) )
10751075 return ;
@@ -1090,7 +1090,7 @@ private void ProcessPositionChangeMessage(PositionChangeMessage message)
10901090 RaiseReceived ( portfolio , message , PortfolioReceived ) ;
10911091 }
10921092
1093- var security = EnsureGetSecurity ( message ) ;
1093+ var security = await EnsureGetSecurityAsync ( message , cancellationToken ) ;
10941094 portfolio = LookupByPortfolioName ( message . PortfolioName ) ;
10951095
10961096 var valueInLots = message . TryGetDecimal ( PositionChangeTypes . CurrentValueInLots ) ;
@@ -1112,17 +1112,17 @@ private void ProcessPositionChangeMessage(PositionChangeMessage message)
11121112 RaiseReceived ( position , message , PositionReceived ) ;
11131113 }
11141114
1115- private void ProcessNewsMessage ( NewsMessage message )
1115+ private async ValueTask ProcessNewsMessage ( NewsMessage message , CancellationToken cancellationToken )
11161116 {
1117- var security = message . SecurityId == null ? null : GetSecurity ( message . SecurityId . Value ) ;
1117+ var security = message . SecurityId == null ? null : await GetSecurityAsync ( message . SecurityId . Value , cancellationToken ) ;
11181118
11191119 var news = _entityCache . ProcessNewsMessage ( security , message ) ;
11201120
11211121 if ( RaiseReceived ( news . news , message , NewsReceived ) == false )
11221122 return ;
11231123 }
11241124
1125- private void ProcessQuotesMessage ( QuoteChangeMessage message )
1125+ private async ValueTask ProcessQuotesMessage ( QuoteChangeMessage message , CancellationToken cancellationToken )
11261126 {
11271127 if ( RaiseReceived ( message , message , OrderBookReceived ) != true )
11281128 return ;
@@ -1141,7 +1141,7 @@ private void ProcessQuotesMessage(QuoteChangeMessage message)
11411141
11421142 if ( ValuesChanged is not null && ! fromLevel1 && ! Adapter . Level1Extend && ( bestBid != null || bestAsk != null ) )
11431143 {
1144- security ??= EnsureGetSecurity ( message ) ;
1144+ security ??= await EnsureGetSecurityAsync ( message , cancellationToken ) ;
11451145
11461146 var info = _entityCache . GetSecurityValues ( security , time ) ;
11471147
@@ -1183,7 +1183,7 @@ private void ProcessQuotesMessage(QuoteChangeMessage message)
11831183#pragma warning disable CS0618 // Type or member is obsolete
11841184 if ( UpdateSecurityLastQuotes )
11851185 {
1186- security ??= EnsureGetSecurity ( message ) ;
1186+ security ??= await EnsureGetSecurityAsync ( message , cancellationToken ) ;
11871187
11881188 var updated = false ;
11891189
@@ -1214,11 +1214,11 @@ private void ProcessQuotesMessage(QuoteChangeMessage message)
12141214 if ( bid . BoardCode . IsEmpty ( ) )
12151215 continue ;
12161216
1217- var innerSecurity = GetSecurity ( new SecurityId
1217+ var innerSecurity = await GetSecurityAsync ( new SecurityId
12181218 {
12191219 SecurityCode = security . Code ,
12201220 BoardCode = bid . BoardCode
1221- } ) ;
1221+ } , cancellationToken ) ;
12221222
12231223 var info = changedSecurities . SafeAdd ( innerSecurity ) ;
12241224
@@ -1237,11 +1237,11 @@ private void ProcessQuotesMessage(QuoteChangeMessage message)
12371237 if ( ask . BoardCode . IsEmpty ( ) )
12381238 continue ;
12391239
1240- var innerSecurity = GetSecurity ( new SecurityId
1240+ var innerSecurity = await GetSecurityAsync ( new SecurityId
12411241 {
12421242 SecurityCode = security . Code ,
12431243 BoardCode = ask . BoardCode
1244- } ) ;
1244+ } , cancellationToken ) ;
12451245
12461246 var info = changedSecurities . SafeAdd ( innerSecurity ) ;
12471247
@@ -1266,7 +1266,7 @@ private void ProcessOrderLogMessage(ExecutionMessage message)
12661266 return ;
12671267 }
12681268
1269- private void ProcessTradeMessage ( ExecutionMessage message )
1269+ private async ValueTask ProcessTradeMessage ( ExecutionMessage message , CancellationToken cancellationToken )
12701270 {
12711271 if ( RaiseReceived ( message , message , TickTradeReceived ) != true )
12721272 return ;
@@ -1275,7 +1275,7 @@ private void ProcessTradeMessage(ExecutionMessage message)
12751275
12761276 if ( ValuesChanged is not null )
12771277 {
1278- security ??= EnsureGetSecurity ( message ) ;
1278+ security ??= await EnsureGetSecurityAsync ( message , cancellationToken ) ;
12791279
12801280 var time = message . ServerTime ;
12811281 var info = _entityCache . GetSecurityValues ( security , time ) ;
@@ -1335,7 +1335,7 @@ private void ProcessTradeMessage(ExecutionMessage message)
13351335#pragma warning disable CS0618 // Type or member is obsolete
13361336 if ( UpdateSecurityLastQuotes )
13371337 {
1338- security ??= EnsureGetSecurity ( message ) ;
1338+ security ??= await EnsureGetSecurityAsync ( message , cancellationToken ) ;
13391339
13401340 security . LastTick = message ;
13411341 }
@@ -1438,7 +1438,7 @@ private void ProcessOwnTradeMessage(Order order, Security security, ExecutionMes
14381438 RaiseReceived ( trade , message , OwnTradeReceived ) ;
14391439 }
14401440
1441- private void ProcessTransactionMessage ( ExecutionMessage message )
1441+ private async ValueTask ProcessTransactionMessage ( ExecutionMessage message , CancellationToken cancellationToken )
14421442 {
14431443 var originId = message . OriginalTransactionId ;
14441444
@@ -1492,7 +1492,7 @@ private void ProcessTransactionMessage(ExecutionMessage message)
14921492 return ;
14931493 }
14941494
1495- security = EnsureGetSecurity ( message ) ;
1495+ security = await EnsureGetSecurityAsync ( message , cancellationToken ) ;
14961496
14971497 if ( transactionId == 0 && isStatusRequest )
14981498 transactionId = TransactionIdGenerator . GetNextId ( ) ;
@@ -1520,12 +1520,12 @@ private void ProcessTransactionMessage(ExecutionMessage message)
15201520 throw new ArgumentOutOfRangeException ( nameof ( message ) , message . DataType , LocalizedStrings . UnknownType . Put ( message ) ) ;
15211521 }
15221522
1523- private void ProcessExecutionMessage ( ExecutionMessage message )
1523+ private async ValueTask ProcessExecutionMessage ( ExecutionMessage message , CancellationToken cancellationToken )
15241524 {
15251525 if ( message . DataType == DataType . Transactions )
1526- ProcessTransactionMessage ( message ) ;
1526+ await ProcessTransactionMessage ( message , cancellationToken ) ;
15271527 else if ( message . DataType == DataType . Ticks )
1528- ProcessTradeMessage ( message ) ;
1528+ await ProcessTradeMessage ( message , cancellationToken ) ;
15291529 else if ( message . DataType == DataType . OrderLog )
15301530 ProcessOrderLogMessage ( message ) ;
15311531 else
0 commit comments