コード例 #1
0
        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);
        }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
ファイル: Client.cs プロジェクト: max-decodeur/NetPlateform
        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);
        }
コード例 #4
0
 private void SelectAllButton_Click(object sender, RoutedEventArgs e)
 {
     FilesView.SelectAll();
 }
コード例 #5
0
 private void FilenameFilterTextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
 {
     FilesView.Refresh();
 }
コード例 #6
0
 private void ExtensionFilters_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
 {
     FilesView.Refresh();
 }