Beispiel #1
0
        private void SaveFileSystemImageToFile(FileSystemDrive fileSystemDrive, string path, string password)
        {
            var storageManagerProgress = new Progress <StorageManagerProgress>();

            LoadAndSaveProgressBar.Visible          = true;
            storageManagerProgress.ProgressChanged += (s, e) =>
            {
                LoadAndSaveProgressBar.Value      = e.ProgressPercentage;
                LoadAndSaveProgressInfoLabel.Text = e.Text;
            };

            saveAsToolStripMenuItem.Enabled = false;
            saveToolStripMenuItem.Enabled   = false;

            Task.Run(async() =>
            {
                var settings       = new StorageManagerSettings(true, Environment.ProcessorCount, true, password);
                var storageManager = new StorageManager(settings);

                bool success = await storageManager.SerializeObjectToFileAsync(fileSystemDrive, path, storageManagerProgress);

                OutcomeEventArgs outcomeEventArgs   = success ? OutcomeEventArgs.Success : OutcomeEventArgs.Failure;
                SaveFileEventHandler onSaveComplete = HandleSaveFileComplete;

                BeginInvoke(onSaveComplete, this, outcomeEventArgs);
            });
        }
Beispiel #2
0
 static OutcomeEventArgs()
 {
     Failure = new OutcomeEventArgs {
         Successful = false
     };
     Success = new OutcomeEventArgs {
         Successful = true
     };
 }
Beispiel #3
0
        protected void HandleSaveFileComplete(object sender, OutcomeEventArgs eventArgs)
        {
            LoadAndSaveProgressBar.Visible    = false;
            saveAsToolStripMenuItem.Enabled   = true;
            saveToolStripMenuItem.Enabled     = true;
            LoadAndSaveProgressInfoLabel.Text = eventArgs.Successful ? "Successfuly saved file" : "Faild to save file";

            Task.Run(async delegate
            {
                await Task.Delay(5000);
                ResetLoadAndSaveProgress();
            });

            MemoryHandler.RunGarbageCollect();
        }