/// <summary> /// Return all worlds state /// </summary> /// <returns></returns> public ConcurrentDictionary <string, WorldInfo> GetWorlds() { lock (sync) { //get all worlds from database var result = Worlds.FindAll().ToList(); //construct dictionary from query result ConcurrentDictionary <string, WorldInfo> worldInfoDict = new ConcurrentDictionary <string, WorldInfo>(); foreach (var world in result) { if (world.info != null) { worldInfoDict.TryAdd(world.info.worldID, world.info); } } return(worldInfoDict); } }