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()));