private Page activePage; //Активная страница #endregion #region Constructors /// <summary> /// Конструктор для инициализации данных /// </summary> public MainViewModel() { State = WindowState.Normal; VisibilityExit = Visibility.Hidden; VisibilityContent = Visibility.Visible; FilesView filesView = new FilesView(); ActivePage = filesView; filesView.DataContext = new FilesViewModel(this); }
private void FileExtensionButton_Click(object sender, RoutedEventArgs e) { // hide others with unselected extension if (sender is ToggleButton tb && tb.Content is string ext) { if (tb.IsChecked == true) { if (!ExtensionsFilters.Contains(ext)) { ExtensionsFilters.Add(ext); } } else { ExtensionsFilters.Remove(ext); } FilesView.Refresh(); } }
public object loadFiles(string[] files) { Console.WriteLine("Model - loadFiles: loading"); List <FormattedFile> results = new List <FormattedFile>(); int filesDecrypted = 0; int filesFailed = 0; int filesCorrupted = 0; FilesView view = null; /* Update view's info on the main thread */ mainWindow.Dispatcher.BeginInvoke(new Action(() => { view = (FilesView)mainWindow.DataContext; view.totalFiles = files.Length; })); ParallelOptions po = new ParallelOptions(); po.MaxDegreeOfParallelism = Environment.ProcessorCount; Parallel.ForEach(files, po, (file, loop) => { object[] contentList = new object[] { new FormattedFile(file) }; Message message = new Message("decrypt", "0.1", contentList); string resultStrMessage = this.platformRequest(message); // Get the result of the request and return it Console.WriteLine("Model - loadFiles: result = " + resultStrMessage); if (string.IsNullOrEmpty(resultStrMessage)) { filesCorrupted++; } else { Message resultMessage = Message.deserialize(resultStrMessage); PDF pdfReceived = PDF.deserialize((string)resultMessage.data[0]); results.Add(pdfReceived); Console.WriteLine("Model - loadFiles: results length = " + results.Count); if (resultMessage.statusOp) { filesDecrypted++; } else { filesFailed++; } if (pdfReceived.validity) { Console.WriteLine("Model - loadFiles: FICHIER DECRYPTE"); this.generateFiles(pdfReceived); } } /* Update view's info on the main thread */ mainWindow.Dispatcher.BeginInvoke(new Action(() => { view.filesDecrypted = filesDecrypted; view.filesFailed = filesFailed; view.filesCorrupted = filesCorrupted; })); }); Console.WriteLine("Model - loadFiles: filesProcessed = " + filesDecrypted + ", filesFailed = " + filesFailed + ", filesCorrupted = " + filesCorrupted); return(filesDecrypted + filesFailed + filesCorrupted == files.Length); }
private void SelectAllButton_Click(object sender, RoutedEventArgs e) { FilesView.SelectAll(); }
private void FilenameFilterTextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e) { FilesView.Refresh(); }
private void ExtensionFilters_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { FilesView.Refresh(); }