示例#1
0
        private bool TryLoad(string fileName = null)
        {
            fileName = GetFileName(fileName);

            Log.Info("Loading filter schemes from '{0}'", fileName);

            FilterSchemes = new FilterSchemes();

            try
            {
                if (File.Exists(fileName))
                {
                    using (var stream = File.Open(fileName, FileMode.Open))
                    {
                        _xmlSerializer.Deserialize(FilterSchemes, stream, null);
                    }
                }

                Log.Debug("Loaded filter schemes from '{0}'", fileName);
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Failed to load filter schemes");
                return(false);
            }

            FilterSchemes.Scope = Scope;
            return(true);
        }
        public async virtual Task <FilterSchemes> LoadFiltersAsync(string fileName)
        {
            Argument.IsNotNullOrWhitespace(() => fileName);

            Log.Info($"Loading filter schemes from '{fileName}'");

            var filterSchemes = new FilterSchemes();

            try
            {
                if (_fileService.Exists(fileName))
                {
                    using (var stream = _fileService.OpenRead(fileName))
                    {
                        _xmlSerializer.Deserialize(filterSchemes, stream, null);
                    }
                }

                Log.Debug("Loaded filter schemes from '{0}'", fileName);
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Failed to load filter schemes");
            }

            return(filterSchemes);
        }
示例#3
0
        public FilterSchemeManager(IXmlSerializer xmlSerializer)
        {
            Argument.IsNotNull(() => xmlSerializer);

            _xmlSerializer = xmlSerializer;

            AutoSave      = true;
            FilterSchemes = new FilterSchemes();
        }
        public FilterSchemeManager(IXmlSerializer xmlSerializer)
        {
            Argument.IsNotNull(() => xmlSerializer);

            _xmlSerializer = xmlSerializer;

            AutoSave = true;
            FilterSchemes = new FilterSchemes();
        }
示例#5
0
        public override async Task SaveFiltersAsync(string path, FilterSchemes filterSchemes)
        {
            // Create clone with filters we want to serialize
            var finalFilterSchemes = new FilterSchemes();

            finalFilterSchemes.Schemes.AddRange(from x in filterSchemes.Schemes
                                                where x.FilterGroup is null
                                                select x);

            await base.SaveFiltersAsync(path, finalFilterSchemes);
        }
示例#6
0
        public FilterSchemeManager(IFilterSerializationService filterSerializationService, IAppDataService appDataService)
        {
            Argument.IsNotNull(() => filterSerializationService);
            Argument.IsNotNull(() => appDataService);

            _filterSerializationService = filterSerializationService;
            _appDataService             = appDataService;

            AutoSave      = true;
            FilterSchemes = new FilterSchemes();
        }
示例#7
0
        private void UpdateFilters()
        {
            Log.Debug("Updating filters");

            if (_filterSchemes != null)
            {
                _filterSchemes.Schemes.CollectionChanged -= OnFilterSchemesCollectionChanged;
            }

            _filterSchemes = _filterSchemeManager?.FilterSchemes;

            if (_filterSchemes != null)
            {
                _filterSchemes.Schemes.CollectionChanged += OnFilterSchemesCollectionChanged;
            }

            UpdateFilterGroups();
        }
        private void UpdateFilters()
        {
            Log.Debug("Updating filters");

            if (_filterSchemes != null)
            {
                _filterSchemes.Schemes.CollectionChanged -= OnFilterSchemesCollectionChanged;
            }

            _filterSchemes = _filterSchemeManager.FilterSchemes;

            if (_filterSchemes != null)
            {
                _filterSchemes.Schemes.CollectionChanged += OnFilterSchemesCollectionChanged;
            }

            var newSchemes = new ObservableCollection <FilterScheme>();

            if (RawCollection == null)
            {
                _targetType = null;
            }
            else
            {
                _targetType = CollectionHelper.GetTargetType(RawCollection);
                if (_targetType != null)
                {
                    ((ICollection <FilterScheme>)newSchemes).AddRange((from scheme in _filterSchemes.Schemes
                                                                       where scheme.TargetType != null && _targetType.IsAssignableFromEx(scheme.TargetType)
                                                                       select scheme));
                }
            }

            newSchemes.Insert(0, NoFilterFilter);

            if (AvailableSchemes == null || !Catel.Collections.CollectionHelper.IsEqualTo(AvailableSchemes, newSchemes))
            {
                AvailableSchemes = newSchemes;

                var selectedFilter = _filterService.SelectedFilter ?? NoFilterFilter;
                SelectedFilterScheme = selectedFilter;
            }
        }
        public async virtual Task SaveFiltersAsync(string fileName, FilterSchemes filterSchemes)
        {
            Argument.IsNotNullOrWhitespace(() => fileName);
            Argument.IsNotNull(() => filterSchemes);

            Log.Info($"Saving filter schemes to '{fileName}'");

            try
            {
                using (var stream = _fileService.OpenWrite(fileName))
                {
                    _xmlSerializer.Serialize(filterSchemes, stream, null);
                }

                Log.Debug("Saved filter schemes to '{0}'", fileName);
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Failed to save filter schemes");
            }
        }
示例#10
0
        private void UpdateFilters()
        {
            if (_filterSchemes != null)
            {
                _filterSchemes.Schemes.CollectionChanged -= OnFilterSchemesCollectionChanged;
            }

            _filterSchemes = _filterSchemeManager.FilterSchemes;

            if (_filterSchemes != null)
            {
                _filterSchemes.Schemes.CollectionChanged += OnFilterSchemesCollectionChanged;
            }

            var newSchemes = new ObservableCollection <FilterScheme>();

            if (RawItems == null)
            {
                _targetType = null;
            }
            else
            {
                _targetType = CollectionHelper.GetTargetType(RawItems);
                ((ICollection <FilterScheme>)newSchemes).AddRange(from scheme in _filterSchemes.Schemes
                                                                  where _targetType != null && _targetType.IsAssignableFromEx(scheme.TargetType)
                                                                  select scheme);
            }

            newSchemes.Insert(0, NoFilterFilter);

            if (AvailableSchemes == null || !Catel.Collections.CollectionHelper.IsEqualTo(AvailableSchemes, newSchemes))
            {
                AvailableSchemes     = newSchemes;
                SelectedFilterScheme = newSchemes.FirstOrDefault();
            }
        }
        private void UpdateFilters()
        {
            Log.Debug("Updating filters");

            if (_filterSchemes != null)
            {
                _filterSchemes.Schemes.CollectionChanged -= OnFilterSchemesCollectionChanged;
            }

            _filterSchemes = _filterSchemeManager.FilterSchemes;

            if (_filterSchemes != null)
            {
                _filterSchemes.Schemes.CollectionChanged += OnFilterSchemesCollectionChanged;
            }

            var newSchemes = new ObservableCollection<FilterScheme>();

            if (RawCollection == null)
            {
                _targetType = null;
            }
            else
            {
                _targetType = CollectionHelper.GetTargetType(RawCollection);
                if (_targetType != null)
                {
                    ((ICollection<FilterScheme>)newSchemes).AddRange((from scheme in _filterSchemes.Schemes
                                                                      where scheme.TargetType != null && _targetType.IsAssignableFromEx(scheme.TargetType)
                                                                      select scheme));
                }
            }

            newSchemes.Insert(0, NoFilterFilter);

            if (AvailableSchemes == null || !Catel.Collections.CollectionHelper.IsEqualTo(AvailableSchemes, newSchemes))
            {
                AvailableSchemes = newSchemes;

                var selectedFilter = _filterService.SelectedFilter ?? NoFilterFilter;
                SelectedFilterScheme = selectedFilter;
            }
        }
        private void UpdateFilters()
        {
            if (_filterSchemes != null)
            {
                _filterSchemes.Schemes.CollectionChanged -= OnFilterSchemesCollectionChanged;
            }

            _filterSchemes = _filterSchemeManager.FilterSchemes;

            if (_filterSchemes != null)
            {
                _filterSchemes.Schemes.CollectionChanged += OnFilterSchemesCollectionChanged;
            }

            var newSchemes = new ObservableCollection<FilterScheme>();

            if (RawItems == null)
            {
                _targetType = null;
            }
            else
            {
                _targetType = CollectionHelper.GetTargetType(RawItems);
                newSchemes.AddRange((from scheme in _filterSchemes.Schemes
                                     where _targetType != null && _targetType.IsAssignableFromEx(scheme.TargetType)
                                     select scheme));
            }

            newSchemes.Insert(0, NoFilterFilter);

            if (AvailableSchemes == null || !Catel.Collections.CollectionHelper.IsEqualTo(AvailableSchemes, newSchemes))
            {
                AvailableSchemes = newSchemes;
                SelectedFilterScheme = newSchemes.FirstOrDefault();
            }
        }
        private bool TryLoad(string fileName = null)
        {
            fileName = GetFileName(fileName);

            Log.Info("Loading filter schemes from '{0}'", fileName);

            FilterSchemes = new FilterSchemes();

            try
            {
                if (File.Exists(fileName))
                {
                    using (var stream = File.Open(fileName, FileMode.Open))
                    {
                        _xmlSerializer.Deserialize(FilterSchemes, stream);
                    }
                }

                Log.Debug("Loaded filter schemes from '{0}'", fileName);
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Failed to load filter schemes");
                return false;
            }

            FilterSchemes.Tag = Tag;

            foreach (var filterScheme in FilterSchemes.Schemes)
            {
                filterScheme.Tag = Tag;
            }

            return true;
        }