public async void Save() { await Task.Run(async() => { var config = new Core.Configuration() { RtspPort = _rtspPort, HttpPort = _httpPort, MinimumNeighbors = _minNeighbors, ScaleFactor = _scaleFactor, SerenityAddress = _serenityIp, SerenityUser = _serenityUser, SerenityPassword = _serenityPass }; config.SelectedDatasources.AddRange(SelectedDataSources.Select(ds => { return(new DataSourceEntry() { Name = ds.Name, Id = ds.Id }); })); if (await _datasourcesMgr.ReInit(_serenityIp, _serenityUser, _serenityPass)) { InitDatasources(new List <DataSourceEntry>()); } if (!_serializer.Save(config)) { LOG.Error("Failed to apply(save) configuration file"); } }); }
private void InitDatasources(List <DataSourceEntry> configuredSources) { Task.Run(async() => { try { if (!await _datasourcesMgr.Init()) { LOG.Error("Unable to retrieve datasources, failed in initalize serenity datasources manager"); return; } var datasources = _datasourcesMgr.GetVideoDataSources(); App.Current.Dispatcher.Invoke(() => { AvailableDataSources.Clear(); SelectedDataSources.Clear(); AvailableDataSources.AddRange(datasources.Where(ds => !IsDataSourceSelected(ds, configuredSources))); SelectedDataSources.AddRange(datasources.Where(ds => IsDataSourceSelected(ds, configuredSources))); }); } catch (Exception e) { LOG.Error(e, "Failed to initialize datasources"); } }); }
private void RemoveDataSources(IList selectedItems) { var toRemove = new List <DataSource>(); foreach (object item in selectedItems) { var ds = item as DataSource; toRemove.Add(ds); App.Current.Dispatcher.Invoke(() => AvailableDataSources.Add(ds)); } App.Current.Dispatcher.Invoke(() => toRemove.ForEach(ds => SelectedDataSources.Remove(ds))); }