I have this scenario where user has its role
NormalUser
Custodian
Finance
both Custodian and Finance is a SuperUser
How can i check if a role Custodian is a SuperUser
this is my sample code..
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
    public enum Role
    {
        NormalUser = 0,
        Custodian = 1,
        Finance = 2,
        SuperUser = Custodian | Finance,
        All = Custodian | Finance | NormalUser
    }
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Normal: " + Convert.ToInt32(Role.NormalUser));            
            Console.WriteLine("Custodian: " + Convert.ToInt32(Role.Custodian));
            Console.WriteLine("Finance: " + Convert.ToInt32(Role.Finance));            
            Console.WriteLine("SuperUser: " + Convert.ToInt32(Role.SuperUser));
            Console.WriteLine("All: " + Convert.ToInt32(Role.All));
            Console.WriteLine();
            Console.WriteLine("Normal User is in All: {0}", Role.NormalUser == Role.All);
            Console.WriteLine("Normal User is not a SuperUser: {0}", Role.NormalUser != Role.SuperUser);
            Console.WriteLine("Normal User is not a Custodian: {0}", Role.NormalUser != Role.Custodian);
            Console.WriteLine();
            Console.WriteLine("Custodian is in All: {0}", Role.Custodian == Role.All);
            Console.WriteLine("Custodian is a SuperUser: {0}", Role.Custodian == Role.SuperUser);
            Console.WriteLine("Custodian is a NormalUser: {0}", Role.Custodian == Role.NormalUser);
            Console.WriteLine();
            Console.WriteLine("Finance is in All: {0}", Role.Finance == Role.All);
            Console.WriteLine("Finance is a SuperUser: {0}", Role.Finance == Role.SuperUser);
            Console.WriteLine("Finance is a NormalUser: {0}", Role.Finance == Role.NormalUser);
            Console.ReadLine();
        }
    }
}
and this is the result if we run it
Normal: 0
Custodian: 1
Finance: 2
SuperUser: 3
All: 3
Normal User is in All: False
Normal User is not a SuperUser: True
Normal User is not a Custodian: True
Custodian is in All: False
Custodian is a SuperUser: False
Custodian is a NormalUser: False
Finance is in All: False
Finance is a SuperUser: False
Finance is a NormalUser: False
i am expecting that a
Custodian is in All: True,
Custodian is a SuperUser: True,
Finance is in All: True,
Finance is a SuperUser: True,
Normal User is in All: True
 
     
     
     
     
    