@@ -516,41 +516,31 @@ public async Task<Result<List<Merchant>>> GetRecentMerchants(MerchantQueries.Get
516516 var merchantsQuery = context . Merchants . Select ( m => new {
517517 MerchantReportingId = m . MerchantReportingId ,
518518 Name = m . Name ,
519- LastSaleDateTime = m . LastSaleDateTime ,
520- LastSale = m . LastSaleDate ,
521519 CreatedDateTime = m . CreatedDateTime ,
522- LastStatement = m . LastStatementGenerated ,
523520 MerchantId = m . MerchantId ,
524521 Reference = m . Reference ,
525- AddressInfo = context . MerchantAddresses . Where ( ma => ma . MerchantId == m . MerchantId ) . OrderByDescending ( ma => ma . CreatedDateTime ) . Select ( ma => new {
526- ma . AddressLine1 ,
527- ma . AddressLine2 ,
528- ma . Country ,
529- ma . PostalCode ,
530- ma . Region ,
531- ma . Town
532- // Add more properties as needed
533- } ) . FirstOrDefault ( ) , // Get the first matching MerchantAddress or null
534- ContactInfo = context . MerchantContacts . Where ( mc => mc . MerchantId == m . MerchantId ) . OrderByDescending ( mc => mc . CreatedDateTime ) . Select ( mc => new { mc . Name , mc . EmailAddress , mc . PhoneNumber } ) . FirstOrDefault ( ) , // Get the first matching MerchantContact or null
535- EstateReportingId = context . Estates . Single ( e => e . EstateId == m . EstateId ) . EstateReportingId
522+ AddressInfo = context . MerchantAddresses . Where ( ma => ma . MerchantId == m . MerchantId )
523+ . OrderByDescending ( ma => ma . CreatedDateTime )
524+ . Select ( ma => new { ma . AddressLine1 , ma . AddressLine2 , ma . Country , ma . PostalCode , ma . Region , ma . Town } )
525+ . FirstOrDefault ( ) ,
526+ ContactInfo = context . MerchantContacts . Where ( mc => mc . MerchantId == m . MerchantId )
527+ . OrderByDescending ( mc => mc . CreatedDateTime )
528+ . Select ( mc => new { mc . Name , mc . EmailAddress , mc . PhoneNumber } )
529+ . FirstOrDefault ( )
536530 } ) . OrderByDescending ( m => m . CreatedDateTime ) . Take ( 3 ) ;
537531
538532 var recentMerchantsResult = await ExecuteQuerySafeToList ( merchantsQuery , cancellationToken , "Error retrieving recent merchants" ) ;
539533 if ( recentMerchantsResult . IsFailed )
540534 return ResultHelpers . CreateFailure ( recentMerchantsResult ) ;
541535
542- var recentMerchants = recentMerchantsResult . Data ;
543-
544- List < Merchant > merchantList = new ( ) ;
545- foreach ( var merchant in recentMerchants ) {
536+ List < Merchant > merchantList = recentMerchantsResult . Data . Select ( merchant => {
546537 Merchant model = new ( ) {
547538 MerchantId = merchant . MerchantId ,
548539 Name = merchant . Name ,
549540 Reference = merchant . Reference ,
550541 MerchantReportingId = merchant . MerchantReportingId ,
551542 CreatedDateTime = merchant . CreatedDateTime ,
552543 } ;
553-
554544 if ( merchant . AddressInfo != null ) {
555545 model . AddressLine1 = merchant . AddressInfo . AddressLine1 ;
556546 model . AddressLine2 = merchant . AddressInfo . AddressLine2 ;
@@ -559,15 +549,13 @@ public async Task<Result<List<Merchant>>> GetRecentMerchants(MerchantQueries.Get
559549 model . Town = merchant . AddressInfo . Town ;
560550 model . Region = merchant . AddressInfo . Region ;
561551 }
562-
563552 if ( merchant . ContactInfo != null ) {
564553 model . ContactName = merchant . ContactInfo . Name ;
565554 model . ContactEmail = merchant . ContactInfo . EmailAddress ;
566555 model . ContactPhone = merchant . ContactInfo . PhoneNumber ;
567556 }
568-
569- merchantList . Add ( model ) ;
570- }
557+ return model ;
558+ } ) . ToList ( ) ;
571559
572560 return Result . Success ( merchantList ) ;
573561 }
0 commit comments