public ReactionFilterType FilterModelToVMType(ReactiveFilterBase filter) { if (filter is FileReactiveFilter) { return ReactionFilterType.Files; } else if (filter is FolderReactiveFilter) { return ReactionFilterType.Folder; } else { return ReactionFilterType.Unknown; } }
public FilterViewModelBase(FolderReactionModel reactionModel, ReactiveFilterBase filter) { ReactionModel = reactionModel; Filter = filter; _CompositeDisposable = new CompositeDisposable(); FilterType = Filter.OutputItemType.ToString(); IncludeFilterText = new ReactiveProperty<string>(""); IncludeFilterPatterns = Filter.IncludeFilter .ToReadOnlyReactiveCollection() .AddTo(_CompositeDisposable); ExcludeFilterText = new ReactiveProperty<string>(""); ExcludeFilterPatterns = Filter.ExcludeFilter .ToReadOnlyReactiveCollection() .AddTo(_CompositeDisposable); /* SampleItems = FolderFilter.ObserveProperty(x => x.FolderFilterPattern) .Throttle(TimeSpan.FromSeconds(0.25)) .SelectMany(x => FolderFilter.DirectoryFilter(ReactionModel.WorkFolder)) .Select(x => $"/{x.Name}") .ToReadOnlyReactiveCollection() .AddTo(_CompositeDisposable); */ AddIncludeFilterTextCommand = IncludeFilterText .Select(x => Filter.IsValidFilterPatternText(x)) .ToReactiveCommand<string>(); AddIncludeFilterTextCommand.Subscribe(AddIncludeFilterText); AddExcludeFilterTextCommand = ExcludeFilterText .Select(x => Filter.IsValidFilterPatternText(x)) .ToReactiveCommand<string>(); AddExcludeFilterTextCommand.Subscribe(AddExcludeFilterText); }