Skip to content

Commit 1472cee

Browse files
Merge pull request #472 from TransactionProcessing/copilot/refactor-get-recent-merchants
Refactor GetRecentMerchants to reduce method LOC below Codacy's 50-line limit
2 parents 0262e7e + 10a500a commit 1472cee

1 file changed

Lines changed: 11 additions & 23 deletions

File tree

EstateReportingAPI.BusinessLogic/ReportingManager.cs

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)