internal WindowViewModel(IProgressBarManager progressBarManager, IFilesListManager filesListManager) { _model = new WindowModel(progressBarManager, filesListManager); _model.PropertyChanged += (s, e) => OnPropertyChanged(e.PropertyName); _model.SetEmptyState(); SetZipState = new BindCommand(param => { string fileName = FilesHelper.PickZipDialog(); if (!string.IsNullOrEmpty(fileName)) { _model.SetZipState(fileName); } }); SetFolderState = new BindCommand(param => { string folderPath = FilesHelper.PickFolderDialog(); if (!string.IsNullOrEmpty(folderPath)) { _model.SetFolderState(folderPath); } }); SetEmptyState = new BindCommand(param => { _model.SetEmptyState(); }); ProcessDragAndDrop = new BindCommand(param => { string[] files = (string[])param; if (files == null || files.Length != 1) { WindowHelper.ShowError("Drag-and-Drop support only one record."); } string path = files[0]; if (FilesHelper.IsFolder(path)) { _model.SetFolderState(path); } else if (FilesHelper.IsZipFile(path)) { _model.SetZipState(path); } else { WindowHelper.ShowError("File format isn't supported."); } }); }
internal FilesListModel(IFilteringManager filteringManager, IProgressBarManager progressManager) { FileRecords = new ReadOnlyObservableCollection <FileRecord>(_fileRecords); _filteringManager = filteringManager; _progressManager = progressManager; filteringManager.OnFilteringUpdate += () => { ApplyFilteting(); }; UpdateFilteringStatus(); }
internal FilesListViewModel(IFilteringManager filteringManager, IProgressBarManager progressManager) { _model = new FilesListModel(filteringManager, progressManager); _model.PropertyChanged += (s, e) => OnPropertyChanged(e.PropertyName); }
internal WindowModel(IProgressBarManager progressBarManager, IFilesListManager filesListManager) { _progressBarManager = progressBarManager; _filesListManager = filesListManager; }