public bool Start(DirectImageTransfer data, bool copy, Action<ScannedImage> imageCallback) { ProgressTitle = copy ? MiscResources.CopyProgress : MiscResources.ImportProgress; Status = new OperationStatus { StatusText = copy ? MiscResources.Copying : MiscResources.Importing, MaxProgress = data.ImageRecovery.Length }; cancel = false; thread = threadFactory.StartThread(() => { Exception error = null; foreach (var ir in data.ImageRecovery) { try { ScannedImage img; using (var bitmap = new Bitmap(Path.Combine(data.RecoveryFolder, ir.FileName))) { img = new ScannedImage(bitmap, ir.BitDepth, ir.HighQuality, -1); } foreach (var transform in ir.TransformList) { img.AddTransform(transform); } img.SetThumbnail(thumbnailRenderer.RenderThumbnail(img)); imageCallback(img); Status.CurrentProgress++; InvokeStatusChanged(); if (cancel) { break; } } catch (Exception ex) { error = ex; } } if (error != null) { Log.ErrorException(string.Format(MiscResources.ImportErrorCouldNot, data.RecoveryFolder), error); } Status.Success = true; InvokeFinished(); }); return true; }
public bool Start(DirectImageTransfer data, bool copy, Action <ScannedImage> imageCallback) { ProgressTitle = copy ? MiscResources.CopyProgress : MiscResources.ImportProgress; Status = new OperationStatus { StatusText = copy ? MiscResources.Copying : MiscResources.Importing, MaxProgress = data.ImageRecovery.Length }; cancel = false; thread = threadFactory.StartThread(() => { Exception error = null; foreach (var ir in data.ImageRecovery) { try { ScannedImage img; using (var bitmap = new Bitmap(Path.Combine(data.RecoveryFolder, ir.FileName))) { img = new ScannedImage(bitmap, ir.BitDepth, ir.HighQuality, -1); } foreach (var transform in ir.TransformList) { img.AddTransform(transform); } img.SetThumbnail(thumbnailRenderer.RenderThumbnail(img)); imageCallback(img); Status.CurrentProgress++; InvokeStatusChanged(); if (cancel) { break; } } catch (Exception ex) { error = ex; } } if (error != null) { Log.ErrorException(string.Format(MiscResources.ImportErrorCouldNot, data.RecoveryFolder), error); } Status.Success = true; InvokeFinished(); }); return(true); }
public bool Start(DirectImageTransfer data, bool copy, Action <ScannedImage> imageCallback) { ProgressTitle = copy ? MiscResources.CopyProgress : MiscResources.ImportProgress; Status = new OperationStatus { StatusText = copy ? MiscResources.Copying : MiscResources.Importing, MaxProgress = data.ImageRecovery.Length }; RunAsync(async() => { Exception error = null; foreach (var ir in data.ImageRecovery) { try { ScannedImage img; using (var bitmap = new Bitmap(Path.Combine(data.RecoveryFolder, ir.FileName))) { img = new ScannedImage(bitmap, ir.BitDepth, ir.HighQuality, -1); } foreach (var transform in ir.TransformList) { img.AddTransform(transform); } // TODO: Don't bother, here, in recovery, etc. img.SetThumbnail(await thumbnailRenderer.RenderThumbnail(img)); imageCallback(img); Status.CurrentProgress++; InvokeStatusChanged(); if (CancelToken.IsCancellationRequested) { break; } } catch (Exception ex) { error = ex; } } if (error != null) { Log.ErrorException(string.Format(MiscResources.ImportErrorCouldNot, data.RecoveryFolder), error); } return(true); }); return(true); }
private void ImportDirect(DirectImageTransfer data, bool copy) { var op = operationFactory.Create<DirectImportOperation>(); var progressForm = FormFactory.Create<FProgress>(); progressForm.Operation = op; if (op.Start(data, copy, ReceiveScannedImage)) { progressForm.ShowDialog(); } }