public List<Image> Scan(SettingsAcquire settings) { Log("Scan start"); _images = new List<Image>(); _scanCompleteEvent.Reset(); var scanSettings = new ScanSettings { Resolution = new ResolutionSettings { Dpi = (int) settings.Resolution, ColourSetting = (ColourSetting)settings.PixelType }, Area = new AreaSettings(Units.Inches, 0, 0, settings.Format.Height, settings.Format.Width), ShowProgressIndicatorUI = false, ShowTwainUI = false, UseDocumentFeeder = settings.ScanSource.HasValue && ((ScanFeed)settings.ScanSource.Value == ScanFeed.Feeder || (ScanFeed)settings.ScanSource.Value == ScanFeed.Duplex), UseAutoFeeder = false, UseAutoScanCache = false, UseDuplex = settings.ScanSource.HasValue && (ScanFeed)settings.ScanSource.Value == ScanFeed.Duplex, }; var scan = new StartScan(StartTwainScan); _windowsMessageLoop.Invoke(scan, new object[] { scanSettings }); _scanCompleteEvent.WaitOne(); Log("Scan complete, images count: " + _images.Count); return _images; }
public Task Execute(StartScan c) => repository.Execute(c.HappeningId, h => h.ValidateStartScan(c.ToScanInfo()));