feat: Enrich DTOs and UI to display member names instead of UUIDs for task assignees, creators, and shift signups.

This commit is contained in:
WorkClub Automation
2026-03-18 14:15:33 +01:00
parent 65fea5d48b
commit da70cf4b13
17 changed files with 453 additions and 157 deletions
+32 -30
View File
@@ -76,26 +76,27 @@ public class ShiftService
{
var shift = await _context.Shifts.FindAsync(id);
if (shift == null)
return null;
if (shift == null)
return null;
var signups = await (from ss in _context.ShiftSignups
where ss.ShiftId == id
join m in _context.Members on ss.MemberId equals m.Id
orderby ss.SignedUpAt
select new { ss.Id, ss.MemberId, m.ExternalUserId, ss.SignedUpAt })
.ToListAsync();
var signups = await (from ss in _context.ShiftSignups
where ss.ShiftId == id
join m in _context.Members on ss.MemberId equals m.Id
orderby ss.SignedUpAt
select new { ss.Id, ss.MemberId, m.DisplayName, m.ExternalUserId, ss.SignedUpAt })
.ToListAsync();
var signupDtos = signups.Select(ss => new ShiftSignupDto(
ss.Id,
ss.MemberId,
ss.ExternalUserId,
ss.SignedUpAt
)).ToList();
var signupDtos = signups.Select(ss => new ShiftSignupDto(
ss.Id,
ss.MemberId,
ss.DisplayName,
ss.ExternalUserId,
ss.SignedUpAt
)).ToList();
var isSignedUp = currentExternalUserId != null && signupDtos.Any(s => s.ExternalUserId == currentExternalUserId);
var isSignedUp = currentExternalUserId != null && signupDtos.Any(s => s.ExternalUserId == currentExternalUserId);
return new ShiftDetailDto(
return new ShiftDetailDto(
shift.Id,
shift.Title,
shift.Description,
@@ -190,23 +191,24 @@ public class ShiftService
return (null, "Shift was modified by another user. Please refresh and try again.", true);
}
var signups = await (from ss in _context.ShiftSignups
where ss.ShiftId == id
join m in _context.Members on ss.MemberId equals m.Id
orderby ss.SignedUpAt
select new { ss.Id, ss.MemberId, m.ExternalUserId, ss.SignedUpAt })
.ToListAsync();
var signups = await (from ss in _context.ShiftSignups
where ss.ShiftId == id
join m in _context.Members on ss.MemberId equals m.Id
orderby ss.SignedUpAt
select new { ss.Id, ss.MemberId, m.DisplayName, m.ExternalUserId, ss.SignedUpAt })
.ToListAsync();
var signupDtos = signups.Select(ss => new ShiftSignupDto(
ss.Id,
ss.MemberId,
ss.ExternalUserId,
ss.SignedUpAt
)).ToList();
var signupDtos = signups.Select(ss => new ShiftSignupDto(
ss.Id,
ss.MemberId,
ss.DisplayName,
ss.ExternalUserId,
ss.SignedUpAt
)).ToList();
var isSignedUp = currentExternalUserId != null && signupDtos.Any(s => s.ExternalUserId == currentExternalUserId);
var isSignedUp = currentExternalUserId != null && signupDtos.Any(s => s.ExternalUserId == currentExternalUserId);
var dto = new ShiftDetailDto(
var dto = new ShiftDetailDto(
shift.Id,
shift.Title,
shift.Description,