private static void LoadAllRealms()
        {
            var realms = DatabaseManager.World.GetAllRealms().ToDictionary(x => x.Id);

            foreach (var realmid in RealmIDsByTopologicalSort)
            {
                var erealm  = RealmConverter.ConvertToEntityRealm(realms[realmid], true);
                var ruleset = BuildRuleset(erealm);
                var wrealm  = new WorldRealm(erealm, ruleset);
                RealmsByID[erealm.Id]     = wrealm;
                RealmsByName[erealm.Name] = wrealm;
                if (Enum.IsDefined(typeof(ReservedRealm), erealm.Id))
                {
                    ReservedRealms[(ReservedRealm)erealm.Id] = wrealm;
                    if (erealm.Id == (ushort)ReservedRealm.@default)
                    {
                        DefaultRealm = wrealm;
                    }
                }

                //Stupid hack, leaks complexity
                if (wrealm.Realm.Type == RealmType.Realm && wrealm.StandardRules.GetProperty(RealmPropertyBool.IsDuelingRealm))
                {
                    DuelRealm = wrealm;
                }
            }
            ;

            Realms            = RealmsByID.Values.Where(x => x.Realm.Type == RealmType.Realm).ToList().AsReadOnly();
            Rulesets          = RealmsByID.Values.Where(x => x.Realm.Type == RealmType.Ruleset).ToList().AsReadOnly();
            RealmsAndRulesets = RealmsByID.Values.ToList().AsReadOnly();
        }