diff --git a/ProgramManager/src/Application/GozareshgirProgramManager.Application/_Common/Constants/ProgramManagerPermissionCode.cs b/ProgramManager/src/Application/GozareshgirProgramManager.Application/_Common/Constants/ProgramManagerPermissionCode.cs index ea171972..f5578ea2 100644 --- a/ProgramManager/src/Application/GozareshgirProgramManager.Application/_Common/Constants/ProgramManagerPermissionCode.cs +++ b/ProgramManager/src/Application/GozareshgirProgramManager.Application/_Common/Constants/ProgramManagerPermissionCode.cs @@ -1,7 +1,10 @@ +using System.Reflection; + namespace GozareshgirProgramManager.Application._Common.Constants; public static class ProgramManagerPermissionCode { + public const int Code = 99; /// @@ -10,17 +13,50 @@ public static class ProgramManagerPermissionCode public static class Board { public const int Code = 991; -/// -/// تب همه -/// + + /// + /// تب همه + /// public static class All { public const int Code = 99101; + /// /// دیدن همه تسک ها /// public const int ViewAll = 9910101; } - } -} + + public static List GetAllCodes() + { + var result = new List(); + + void Collect(Type type) + { + // Collect const int fields directly declared on this type + var fields = type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.DeclaredOnly); + foreach (var f in fields) + { + if (f.FieldType == typeof(int) && f.IsLiteral && !f.IsInitOnly) + { + var raw = f.GetRawConstantValue(); + if (raw is int value) + { + result.Add(value); + } + } + } + + // Recurse into nested types + var nestedTypes = type.GetNestedTypes(BindingFlags.Public | BindingFlags.NonPublic); + foreach (var nt in nestedTypes) + { + Collect(nt); + } + } + + Collect(typeof(ProgramManagerPermissionCode)); + return result; + } +} \ No newline at end of file diff --git a/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Persistence/Repositories/TaskSectionRepository.cs b/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Persistence/Repositories/TaskSectionRepository.cs index 80564915..41551be5 100644 --- a/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Persistence/Repositories/TaskSectionRepository.cs +++ b/ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Persistence/Repositories/TaskSectionRepository.cs @@ -28,4 +28,11 @@ public class TaskSectionRepository:RepositoryBase,ITaskSection .Include(x => x.AdditionalTimes) .FirstOrDefaultAsync(x => x.Id == id, cancellationToken); } + + public async Task> GetAssignedToUserAsync(long userId) + { + return await _context.TaskSections + .Where(x => x.CurrentAssignedUserId == userId) + .ToListAsync(); + } } \ No newline at end of file