/// <summary> /// Start polling for tasks... /// </summary> /// <returns>true on success</returns> public async Task <bool> MonitorTasksStart() { bool blSuccess; CloudScanner cloudScanner = null; using (var context = new CloudContext()) { cloudScanner = context.Scanners.First(); } var cloudClient = new TwainCloudClient(CloudManager.GetCloudApiRoot(), new TwainCloudTokens(cloudScanner.AuthorizationToken, cloudScanner.RefreshToken)); cloudClient.TokensRefreshed += (sender, args) => { cloudScanner.AuthorizationToken = args.Tokens.AuthorizationToken; cloudScanner.RefreshToken = args.Tokens.RefreshToken; SaveScannerRegistration(cloudScanner); }; // Start monitoring for commands... blSuccess = await m_twainlocalscannerdevice.DeviceHttpServerStart(new DeviceSession(cloudClient, cloudScanner.Id)); if (!blSuccess) { Log.Error("DeviceHttpServerStart failed..."); return(false); } // All done... return(true); }
private static void SaveScannerRegistration(CloudScanner scanner) { using (var context = new CloudContext()) { context.Scanners.AddOrUpdate(scanner); context.SaveChanges(); } }
public CloudScanner GetCurrentCloudScanner() { CloudScanner cloudScanner = null; var cloudConfigFileName = GetCloudConfigFileName(); if (File.Exists(cloudConfigFileName)) { var cloudScannerId = File.ReadAllText(GetCloudConfigFileName()); using (var context = new CloudContext()) cloudScanner = context.Scanners.Find(cloudScannerId); } return(cloudScanner); }
/// <summary> /// Register a device with cloud infrastructure. /// </summary> public async Task RegisterCloudScanner() { try { var client = new TwainCloudClient(CloudManager.GetCloudApiRoot()); var registrationManager = new RegistrationManager(client); var scannerInfo = new RegistrationRequest { Name = GetTwainLocalTy(), Description = GetTwainLocalNote() }; var result = await registrationManager.Register(scannerInfo); var registrationDialog = new RegistrationForm(registrationManager, result); registrationDialog.ShowDialog(); var pollResult = registrationDialog.PollResponse; if (pollResult != null) { var cloudScanner = new CloudScanner { Id = result.ScannerId, Name = $"{scannerInfo.Name} ({scannerInfo.Description})", AuthorizationToken = pollResult.AuthorizationToken, RefreshToken = pollResult.RefreshToken }; SaveScannerRegistration(cloudScanner); SetCurrentCloudScanner(cloudScanner); } } catch (Exception exception) { Log.Error("RegisterCloudScanner exception - " + exception.Message); } }
public void SetCurrentCloudScanner(CloudScanner scanner) { var cloudConfigFileName = GetCloudConfigFileName(); File.WriteAllText(cloudConfigFileName, scanner.Id); }