public static ObsWebsocketSettingDataModel Translate(ObsWebsocketSettingViewModel viewModel)
        {
            var dataModel = new ObsWebsocketSettingDataModel(viewModel.ServerAddress.Value, viewModel.Password.Value,
                                                             viewModel.AutoReconnectOnStart.Value, viewModel.ChangeScene.Value, viewModel.RestartMedia.Value);

            return(dataModel);
        }
        public ObsWebsocketSettingDataModel Load()
        {
            if (loaded)
            {
                return(cache);
            }

            var data = FileIOUtility.Read <ObsWebsocketSettingDataModel>("ObsWebsocket");

            try
            {
                data.ServerAddress = AesEncryption.Decrypt(data.ServerAddress);
                data.Password      = AesEncryption.Decrypt(data.Password);
            }
            catch (Exception e)
            {
                Debug.LogError("Encryption info is updated. please re-enter address and password.");
                data.ServerAddress = "";
                data.Password      = "";
            }

            loaded = true;

            cache = data;

            return(data);
        }
        public static ObsWebsocketSettingViewModel Translate(ObsWebsocketSettingDataModel dataModel)
        {
            var viewModel = new ObsWebsocketSettingViewModel(dataModel.ServerAddress, dataModel.Password,
                                                             dataModel.AutoReconnectOnStart, dataModel.ChangeScene, dataModel.RestartMedia);

            return(viewModel);
        }
        public void Save(ObsWebsocketSettingDataModel setting)
        {
            setting.ServerAddress = AesEncryption.Encrypt(setting.ServerAddress);
            setting.Password      = AesEncryption.Encrypt(setting.Password);

            FileIOUtility.Write(setting, "ObsWebsocket");

            cache = setting;
        }