2121using Microsoft . Xrm . Sdk . Metadata . Query ;
2222using Microsoft . Xrm . Sdk . Query ;
2323using Yagasoft . CrmCodeGenerator . Connection ;
24- using Yagasoft . CrmCodeGenerator . Connection . OrgSvcs ;
2524using Yagasoft . CrmCodeGenerator . Helpers ;
2625using Yagasoft . CrmCodeGenerator . Models . Cache ;
2726using Yagasoft . CrmCodeGenerator . Models . Settings ;
@@ -209,7 +208,7 @@ public bool IsEnglishLabelEnabled
209208 private readonly WorkerHelper workerHelper ;
210209 private readonly Action callback ;
211210 private readonly Action closeAction ;
212- private readonly IConnectionManager < IDisposableOrgSvc > connectionManager ;
211+ private readonly IConnectionManager connectionManager ;
213212 private EntityMetadata metadata ;
214213
215214 private readonly ConcurrentBag < EntityFilterGridRow > rowListAttrSource = new ConcurrentBag < EntityFilterGridRow > ( ) ;
@@ -235,7 +234,7 @@ protected virtual void OnPropertyChanged([CallerMemberName] string propertyName
235234
236235 public FilterDetails ( string logicalName , Settings settings ,
237236 EntityProfile entityProfile , ObservableCollection < GridRow > entities ,
238- IConnectionManager < IDisposableOrgSvc > connectionManager , MetadataCache metadataCache ,
237+ IConnectionManager connectionManager , MetadataCache metadataCache ,
239238 WorkerHelper workerHelper , Action callback , Action closeAction )
240239 {
241240 InitializeComponent ( ) ;
@@ -421,7 +420,7 @@ private void GenerateLists(string controlName = null)
421420 var row = rowList1NSource . FirstOrDefault ( r => r . Name == relation1NAsync . SchemaName )
422421 ?? new Relations1NGridRow
423422 {
424- IsSelected = EntityProfile . OneToN == null || EntityProfile . OneToN . Contains ( relation1NAsync . SchemaName ) ,
423+ IsSelected = EntityProfile . OneToN ? . Contains ( relation1NAsync . SchemaName ) == true ,
425424 Name = relation1NAsync . SchemaName ,
426425 ToEntity = relation1NAsync . ReferencingEntity ?? "" ,
427426 ToField = relation1NAsync . ReferencingAttribute ?? "" ,
@@ -466,7 +465,7 @@ private void GenerateLists(string controlName = null)
466465 var row = rowListN1Source . FirstOrDefault ( r => r . Name == relationN1Async . SchemaName )
467466 ?? new RelationsN1GridRow
468467 {
469- IsSelected = EntityProfile . NToOne == null || EntityProfile . NToOne . Contains ( relationN1Async . SchemaName ) ,
468+ IsSelected = EntityProfile . NToOne ? . Contains ( relationN1Async . SchemaName ) == true ,
470469 Name = relationN1Async . SchemaName ,
471470 ToEntity = relationN1Async . ReferencedEntity ?? "" ,
472471 FromField = relationN1Async . ReferencingAttribute ?? "" ,
@@ -516,7 +515,7 @@ private void GenerateLists(string controlName = null)
516515 var row =
517516 new RelationsNnGridRow
518517 {
519- IsSelected = EntityProfile . NToN == null || EntityProfile . NToN . Contains ( relationNnAsync . SchemaName ) ,
518+ IsSelected = EntityProfile . NToN ? . Contains ( relationNnAsync . SchemaName ) == true ,
520519 Name = relationNnAsync . SchemaName ,
521520 ToEntity = relationNnAsync . Entity1LogicalName == LogicalName
522521 ? relationNnAsync . Entity2LogicalName
@@ -646,10 +645,7 @@ private RetrieveMetadataChangesResponse GetEntityMetadata()
646645 Query = entityQueryExpression ,
647646 } ;
648647
649- using ( var service = connectionManager . Get ( Settings . ConnectionString ) )
650- {
651- return ( RetrieveMetadataChangesResponse ) service . Execute ( retrieveMetadataChangesRequest ) ;
652- }
648+ return ( RetrieveMetadataChangesResponse ) connectionManager . Get ( ) . Execute ( retrieveMetadataChangesRequest ) ;
653649 }
654650
655651 #endregion
@@ -754,10 +750,15 @@ private List<string> FilterSource<T>(TextBox filterBox, ConcurrentBag<T> source)
754750 . Where ( t => t . IsFilled ( ) )
755751 . Distinct ( ) ;
756752
757- return source
758- . Where ( e => filters . Any ( f => Regex . IsMatch ( e . Name , f )
759- || ( e . DisplayName . IsFilled ( ) && Regex . IsMatch ( e . DisplayName , f ) ) || ( e . Rename . IsFilled ( ) && Regex . IsMatch ( e . Rename , f ) ) ) )
760- . Select ( e => e . Name ) . Distinct ( ) . ToList ( ) ;
753+ return source
754+ . Where ( e => filters . Any ( f => Regex . IsMatch ( e . Name , f )
755+ || ( e . DisplayName . IsFilled ( ) && Regex . IsMatch ( e . DisplayName . ToLower ( ) , f ) )
756+ || ( e . Rename . IsFilled ( ) && Regex . IsMatch ( e . Rename . ToLower ( ) , f ) )
757+ || ( e is Relations1NGridRow oneN && ( ( oneN . ToEntity . IsFilled ( ) && Regex . IsMatch ( oneN . ToEntity . ToLower ( ) , f ) )
758+ || ( oneN . ToField . IsFilled ( ) && Regex . IsMatch ( oneN . ToField . ToLower ( ) , f ) ) ) )
759+ || ( e is RelationsN1GridRow nOne && ( ( nOne . ToEntity . IsFilled ( ) && Regex . IsMatch ( nOne . ToEntity . ToLower ( ) , f ) )
760+ || ( nOne . FromField . IsFilled ( ) && Regex . IsMatch ( nOne . FromField . ToLower ( ) , f ) ) ) ) ) )
761+ . Select ( e => e . Name ) . Distinct ( ) . ToList ( ) ;
761762 }
762763
763764 return null ;
0 commit comments