From 9d1498763c976cc3ced265caa8c7eb3d4f21a98a Mon Sep 17 00:00:00 2001 From: Colin Dawson Date: Mon, 16 Mar 2026 23:39:14 +0000 Subject: [PATCH] Get my Assignments is now working --- .../e-suite.API.Common/GetMyAssignments.cs | 17 ++++++++++++++--- .../e-suite.Database.Core/Tables/Domain/Role.cs | 8 ++++++-- .../ActivityManager.cs | 16 +++++++--------- .../repository/ActivityRepository.cs | 6 +++--- 4 files changed, 30 insertions(+), 17 deletions(-) diff --git a/e-suite.API.Common/e-suite.API.Common/GetMyAssignments.cs b/e-suite.API.Common/e-suite.API.Common/GetMyAssignments.cs index 2da6814..17bc6c4 100644 --- a/e-suite.API.Common/e-suite.API.Common/GetMyAssignments.cs +++ b/e-suite.API.Common/e-suite.API.Common/GetMyAssignments.cs @@ -1,18 +1,29 @@ -using e_suite.Database.Core.Models; +using e_suite.Database.Core.Extensions; +using e_suite.Database.Core.Models; using eSuite.Core.Miscellaneous; namespace e_suite.API.Common; public class GetMyAssignments : IGeneralId { + public GetMyAssignments( Database.Core.Tables.Activity.ActivityAssignment assignment) + { + Id = assignment.Id; + Guid = assignment.Guid; + User = assignment.User?.ToGeneralIdRef(); + Role = assignment.Role?.ToGeneralIdRef(); + TaskType = assignment.Task.TaskType; + TaskName = assignment.Task.TaskName; + StartDateTime = assignment.StartDateTime; + } public long Id { get; set; } public Guid Guid { get; set; } + public string TaskType { get; set; } + public string TaskName { get; set; } public GeneralIdRef? User { get; set; } public GeneralIdRef? Role { get; set; } - public string TaskType { get; set; } - public string TaskName { get; set; } public DateTimeOffset? StartDateTime { get; set; } } \ No newline at end of file diff --git a/e-suite.Database.Core/e-suite.Database.Core/Tables/Domain/Role.cs b/e-suite.Database.Core/e-suite.Database.Core/Tables/Domain/Role.cs index c321282..c08c3ea 100644 --- a/e-suite.Database.Core/e-suite.Database.Core/Tables/Domain/Role.cs +++ b/e-suite.Database.Core/e-suite.Database.Core/Tables/Domain/Role.cs @@ -54,8 +54,7 @@ public class Role : IGeneralId, ISoftDeletable [ForeignKey(nameof(DomainId))] public virtual Domain Domain { get; set; } = null!; - [ForeignKey(nameof(Id))] - public virtual ICollection UserRoles { get; set; } + public virtual ICollection UserRoles { get; set; } = new List(); public static void OnModelCreating(ModelBuilder modelBuilder) { @@ -82,5 +81,10 @@ public class Role : IGeneralId, ISoftDeletable DomainId = 1, Deleted = false, }); + + modelBuilder.Entity() + .HasMany(r => r.UserRoles) + .WithOne(ur => ur.Role) + .HasForeignKey(ur => ur.RoleId); } } \ No newline at end of file diff --git a/e-suite.Modules.RunningActivityManager/ActivityManager.cs b/e-suite.Modules.RunningActivityManager/ActivityManager.cs index 9072db6..745e39f 100644 --- a/e-suite.Modules.RunningActivityManager/ActivityManager.cs +++ b/e-suite.Modules.RunningActivityManager/ActivityManager.cs @@ -56,14 +56,12 @@ public class ActivityManager : IActivityManager public async Task> GetMyActiveAssignmentsAsync(AuditUserDetails auditUserDetails, Paging paging, CancellationToken cancellationToken) { - var myAssignments = _activityRepository.GetAssignments().Where(x => x.Deleted == false ); - - myAssignments = myAssignments.Where(x => x.ActivityState == ActivityState.Active); - myAssignments = myAssignments.Where(x => x.UserId != null && x.UserId == auditUserDetails.UserId - || ( - x.Role.UserRoles.Any( u => u.UserId == auditUserDetails.UserId) - ) - ); + var myAssignments = _activityRepository.GetAssignments() + .Where(x => + x.Deleted == false && + x.ActivityState == ActivityState.Active && + (x.UserId == auditUserDetails.UserId + || x.Role.UserRoles.Any(u => u.UserId == auditUserDetails.UserId))); var paginatedData = await PaginatedData.Paginate(myAssignments, paging, MyActiveAssignmentsKeySelector, cancellationToken); @@ -77,8 +75,8 @@ public class ActivityManager : IActivityManager { "id" => x => x.Id, "guid" => x => x.Guid, + "taskname" => x => x.Task.TaskName, "startdatetime" => x => x.StartDateTime, - "lastupdated" => x => x.LastUpdated, _ => x => x.Id }; } diff --git a/e-suite.Modules.RunningActivityManager/repository/ActivityRepository.cs b/e-suite.Modules.RunningActivityManager/repository/ActivityRepository.cs index a759c4e..1eba58a 100644 --- a/e-suite.Modules.RunningActivityManager/repository/ActivityRepository.cs +++ b/e-suite.Modules.RunningActivityManager/repository/ActivityRepository.cs @@ -61,10 +61,10 @@ public class ActivityRepository : RepositoryBase, IActivityRepository public IQueryable GetAssignments() { return DatabaseDbContext.ActivityAssignments - .Include( x => x.User) + .Include(x => x.User) .Include(x => x.Role) - .ThenInclude( x => x.UserRoles) - .ThenInclude( x=> x.User) + .ThenInclude(x => x.UserRoles.Where(ur => !ur.Deleted)) + .ThenInclude(x => x.User) .Include(x => x.Task); } } \ No newline at end of file