示例#1
0
        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");
                }
            });
        }
示例#2
0
        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");
                }
            });
        }
示例#3
0
        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)));
        }