Disco.Services.JobFlagExtensions.CacheAllFlags C# (CSharp) Method

CacheAllFlags() private static method

private static CacheAllFlags ( ) : void
return void
        private static void CacheAllFlags()
        {
            if (allFlags == null)
            {
                var fType = typeof(Job.UserManagementFlags);
                var fMembers = fType.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);

                var flags = new Dictionary<string, Dictionary<long, string>>();
                foreach (var f in fMembers)
                {
                    DisplayAttribute display = (DisplayAttribute)(f.GetCustomAttributes(typeof(DisplayAttribute), false)[0]);
                    string gn = display.GroupName;
                    Dictionary<long, string> g;
                    if (!flags.TryGetValue(gn, out g))
                    {
                        g = new Dictionary<long, string>();
                        flags.Add(gn, g);
                    }
                    g[(long)f.GetRawConstantValue()] = display.Name;
                }
                allFlags = flags;
            }
        }