Пример #1
0
        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.");
                }
            });
        }
Пример #2
0
        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);
 }
Пример #4
0
 internal WindowModel(IProgressBarManager progressBarManager, IFilesListManager filesListManager)
 {
     _progressBarManager = progressBarManager;
     _filesListManager   = filesListManager;
 }