public void ParseConfigFile()
        {
            var device = _settingsManager.ReadSettingsFile(@"\NVRAM\Settings\HE_Devices.dat");

            _deviceSettings = _settingsManager.GetDeviceConfiguration(device);

            var system = _settingsManager.ReadSettingsFile(@"\NVRAM\Settings\HE_Lighting.dat");

            _systemSettings = _settingsManager.GetLightSystemConfiguration(system);
        }
        public void InitializeLightingLoads(LightSystemSettings systemSettings)
        {
            foreach (SerializationLightLoad load in systemSettings.loads)
            {
                var deviceId   = SettingsManager.ConvertStringNumberToInt(load.lightDeviceId);
                var loadId     = SettingsManager.ConvertStringNumberToInt(load.id);
                var loadNumber = SettingsManager.ConvertStringNumberToInt(load.loadNumber);

                LightingBase lightDevice;

                if (_lightDevices.TryGetValue(deviceId, out lightDevice))
                {
                    if (lightDevice is Dimmer)
                    {
                        DimmingLoad dimmingLoad;

                        if (((Dimmer)lightDevice).DimmingLoads.TryGetValue((uint)loadNumber, out dimmingLoad))
                        {
                            _loadManager.AddLoadsFromCrestronLoad(loadId, load.name, dimmingLoad);
                        }
                        else
                        {
                            CrestronConsole.PrintLine("Unable to get load");
                        }
                    }
                    else if (lightDevice is Switch)
                    {
                        SwitchedLoad switchedLoad;

                        if (((Switch)lightDevice).SwitchedLoads.TryGetValue((uint)loadNumber, out switchedLoad))
                        {
                            _loadManager.AddLoadsFromCrestronLoad(loadId, load.name, switchedLoad);
                        }
                        else
                        {
                            CrestronConsole.PrintLine("Unable to get load");
                        }
                    }
                    else
                    {
                        CrestronConsole.PrintLine("Unknown light device type!");
                    }
                }
                else
                {
                    CrestronConsole.PrintLine("Cresron device not found with id of: " + load.lightDeviceId);
                }
            }
        }
        public void InitializeRooms(LightSystemSettings systemSettings)
        {
            foreach (SerializationRoom room in systemSettings.rooms)
            {
                var roomId = SettingsManager.ConvertStringNumberToInt(room.id);


                // var loadId = SettingsManager.ConvertStringNumberToInt(load.id);

                LightedRoom lightedRoom = new LightedRoom(roomId, room.name);

                List <int> loadIds = null;

                if (!String.IsNullOrEmpty(room.loadList))
                {
                    if (room.loadList == "all")
                    {
                        loadIds = _loadManager.GetLoads().Select(x => x.LoadID).ToList <int>();
                    }
                    else
                    {
                        loadIds = new List <int>(room.loadList.Split(',').Select(s => int.Parse(s)));
                    }

                    foreach (int loadId in loadIds)
                    {
                        lightedRoom.AddLoad(_loadManager.GetLoad(loadId));
                    }
                }

                if (!String.IsNullOrEmpty(room.sceneList))
                {
                    var sceneIds = new List <int>(room.sceneList.Split(',').Select(s => int.Parse(s)));

                    foreach (int sceneId in sceneIds)
                    {
                        Scene scene = _sceneManager.GetScene(sceneId);
                        scene.AssignRoom(lightedRoom);
                        lightedRoom.AddScene(scene);
                    }
                }

                _roomManager.AddRoom(lightedRoom);
            }
        }
        public void InitializeScenes(LightSystemSettings systemSettings)
        {
            foreach (SerializationScene scene in systemSettings.scenes)
            {
                var id = SettingsManager.ConvertStringNumberToInt(scene.id);

                Scene lightScene = new Scene(id, scene.name);

                if (scene.wholeHome)
                {
                    lightScene.WholeHome = true;
                }

                foreach (SerializationLoadState loadState in scene.loadStates)
                {
                    var level = SettingsManager.ConvertUnsignedStringNumber(loadState.level);

                    List <int> loadIds = null;

                    if (loadState.loadList == "all")
                    {
                        loadIds = _loadManager.GetLoads().Select(x => x.LoadID).ToList <int>();
                    }
                    else
                    {
                        loadIds = new List <int>(loadState.loadList.Split(',').Select(s => int.Parse(s)));
                    }

                    foreach (int loadID in loadIds)
                    {
                        LoadState state = new LoadState((ushort)level, LoadManager.GetLoad(loadID));
                        lightScene.AddLoadState(state);
                    }
                }

                _sceneManager.AddScene(lightScene);
            }
        }
 public void InitializeSystem(LightSystemSettings systemSettings)
 {
     InitializeLightingLoads(systemSettings);
     InitializeScenes(systemSettings);
     InitializeRooms(systemSettings);
 }