feat: add method to retrieve task sections assigned to a user and enhance permission code structure

This commit is contained in:
2025-12-15 14:06:07 +03:30
parent a1e85261a6
commit d9da2e97ab
2 changed files with 48 additions and 5 deletions

View File

@@ -1,7 +1,10 @@
using System.Reflection;
namespace GozareshgirProgramManager.Application._Common.Constants;
public static class ProgramManagerPermissionCode
{
public const int Code = 99;
/// <summary>
@@ -10,17 +13,50 @@ public static class ProgramManagerPermissionCode
public static class Board
{
public const int Code = 991;
/// <summary>
/// تب همه
/// </summary>
/// <summary>
/// تب همه
/// </summary>
public static class All
{
public const int Code = 99101;
/// <summary>
/// دیدن همه تسک ها
/// </summary>
public const int ViewAll = 9910101;
}
}
}
public static List<int> GetAllCodes()
{
var result = new List<int>();
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;
}
}