Fix dcr retrieval

main
ilitirit 1 year ago
parent 42edd4a35a
commit 22bb30af18

@ -62,35 +62,15 @@ public class ExpedienceRepository : IExpedienceRepository
if (topXResults.Count == 0) return new List<TopXCompletionResultDto>();
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();

Loading…
Cancel
Save