From 22bb30af18c31f824a482968ffd592d54bc3111b Mon Sep 17 00:00:00 2001 From: ilitirit Date: Fri, 9 Aug 2024 20:35:52 +0200 Subject: [PATCH] Fix dcr retrieval --- .../ExpedienceRepository.cs | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/Expedience.Infrastructure/ExpedienceRepository.cs b/Expedience.Infrastructure/ExpedienceRepository.cs index a358e4f..fa5a24d 100644 --- a/Expedience.Infrastructure/ExpedienceRepository.cs +++ b/Expedience.Infrastructure/ExpedienceRepository.cs @@ -62,35 +62,15 @@ public class ExpedienceRepository : IExpedienceRepository if (topXResults.Count == 0) return new List(); - var uploadId = topXResults.First().Id; + var topXIds = topXResults.Select(r => r.Id).ToList(); var userIds = topXResults.Select(r => r.UserId).Distinct().ToList(); - var dutyCompletionResult = await _dbContext.DutyCompletionResults - .FirstAsync(dcr => dcr.Id == uploadId); + var dutyCompletionResults = await _dbContext.DutyCompletionResults + .Where(dcr => topXIds.Contains(dcr.Id)) + .ToListAsync(); - var dcrDto = new DutyCompletionResultDto - { - Id = uploadId, - UserId = dutyCompletionResult.UserId, - TerritoryId = dutyCompletionResult.TerritoryId, - HasEcho = dutyCompletionResult.HasEcho, - IsUnrestricted = dutyCompletionResult.IsUnrestricted, - IsMinILevel = dutyCompletionResult.IsMinILevel, - HasNpcMembers = dutyCompletionResult.HasNpcMembers, - StartTime = dutyCompletionResult.StartTime, - EndTime = dutyCompletionResult.EndTime, - Hours = dutyCompletionResult.Hours, - Minutes = dutyCompletionResult.Minutes, - Seconds = dutyCompletionResult.Seconds, - Milliseconds = dutyCompletionResult.Milliseconds, - GameVersion = dutyCompletionResult.GameVersion, - PluginVersion = dutyCompletionResult.PluginVersion, - Lang = dutyCompletionResult.Lang, - DataCenter = dutyCompletionResult.DataCenter, - UploadedAt = dutyCompletionResult.UploadedAt - }; var dutyMembers = await _dbContext.DutyMembers - .Where(dm => dm.UploadId == uploadId) + .Where(dm => topXIds.Contains(dm.UploadId)) .ToListAsync(); var users = await _dbContext.Users @@ -109,13 +89,34 @@ public class ExpedienceRepository : IExpedienceRepository ContentType = territory.ContentType, Expac = territory.Expac }; - - + var resultDtos = topXResults.Select(result => new TopXCompletionResultDto { Rank = result.Rank, Duration = result.Duration, - DutyCompletionResult = dcrDto, + DutyCompletionResult = dutyCompletionResults + .Where(dcr => dcr.Id == result.Id) + .Select(dcr => new DutyCompletionResultDto + { + Id = dcr.Id, + UserId = dcr.UserId, + TerritoryId = dcr.TerritoryId, + HasEcho = dcr.HasEcho, + IsUnrestricted = dcr.IsUnrestricted, + IsMinILevel = dcr.IsMinILevel, + HasNpcMembers = dcr.HasNpcMembers, + StartTime = dcr.StartTime, + EndTime = dcr.EndTime, + Hours = dcr.Hours, + Minutes = dcr.Minutes, + Seconds = dcr.Seconds, + Milliseconds = dcr.Milliseconds, + GameVersion = dcr.GameVersion, + PluginVersion = dcr.PluginVersion, + Lang = dcr.Lang, + DataCenter = dcr.DataCenter, + UploadedAt = dcr.UploadedAt + }).First(), DutyMembers = dutyMembers .Where(dm => dm.UploadId == result.Id) .Select(dm => new DutyMemberDto @@ -127,8 +128,6 @@ public class ExpedienceRepository : IExpedienceRepository ClassJob = dm.ClassJob, IsNpc = dm.IsNpc }).ToList(), - Territory = territoryDto -, User = users .Where(u => u.UserId == result.UserId) .Select(u => new UserDto @@ -136,7 +135,8 @@ public class ExpedienceRepository : IExpedienceRepository UserId = u.UserId, UserName = u.UserName, WorldId = u.WorldId - }).FirstOrDefault() + }).FirstOrDefault(), + Territory = territoryDto }).ToList();