public void Init()
        {
            try
            {
                // load camera profiles
                CameraProfiles.Clear();
                CameraProfiles.Add(_noneProfile);

                var files = Directory.GetFiles(Settings.Instance.CameraProfileFolder, "*.json");
                foreach (var file in files)
                {
                    var p = CameraProfile.Load(file);
                    if (p != null)
                    {
                        CameraProfiles.Add(p);
                    }
                }
                RaisePropertyChanged(() => CameraProfile);
                // camera profiles
                Profiles.Clear();
                files = Directory.GetFiles(Settings.Instance.ProfileFolder, "*.json");
                foreach (var file in files)
                {
                    var p = Profile.Load(file);
                    if (p != null)
                    {
                        Profiles.Add(p);
                    }
                }
                if (Profiles.Count == 0)
                {
                    var newP = GetNewProfile("Profile1");
                    newP.Save();
                    Profiles.Add(newP);
                }
                Profile = Profiles[0];
                if (!string.IsNullOrWhiteSpace(Profile?.CameraProfileId))
                {
                    CameraProfile = CameraProfiles.FirstOrDefault(x => x.Id == Profile.CameraProfileId);
                }
            }
            catch (Exception e)
            {
                Log.Debug("Unable to load profile list ", e);
            }
        }
        private void AddProfile()
        {
            var profile = new CameraProfile(SelectedCameraDevice)
            {
                Name = "CameraProfile"
            };
            var dlg = new CameraProfilerView {
                DataContext = new CameraProfilerViewModel(profile)
            };

            if (dlg.ShowDialog() == true)
            {
                profile.Save();
                CameraProfiles.Add(profile);
                CameraProfile = profile;
            }
        }
        public void Init()
        {
            try
            {
                CameraProfiles.Clear();
                CameraProfiles.Add(_noneProfile);

                var files = Directory.GetFiles(Settings.Instance.CameraProfileFolder, "*.json");
                foreach (var file in files)
                {
                    var p = CameraProfile.Load(file);
                    if (p != null)
                    {
                        CameraProfiles.Add(p);
                    }
                }
                RaisePropertyChanged(() => CameraProfile);
                Task.Factory.StartNew(SetProfile);
            }
            catch (Exception e)
            {
                Log.Debug("Unable to load camera profile list", e);
            }
        }