I see values from at least a handful of different enumerations in there…
My first thought was to approach the problem by splitting the permissions up in logical groups (RuleGroupPermissions
, RulePermissions
, LocationPermissions
, …), and then having a class (WebAgentPermissions
) exposing a property for each permission enum type.
Since the permission values seem repetitive, you could probably get away with a single enum in the end:
[Flags]
public enum Permissions
{
View = 1,
Add = 2,
Edit = 4,
Delete = 8
}
And then have the WebAgentPermissions
class expose a property for each area where permissions are to be set;
class WebAgentPermissions
{
public Permissions RuleGroup { get; set; }
public Permissions Rule { get; set; }
public Permissions Location { get; set; }
// and so on...
}