async Task WorkflowCleanup(string errorMessage, string mac, IDevice device, bool workflowFinishedSuccessfully, bool deleteVaultBond) { // Cleanup try { await _ui.HidePinUi(); if (!string.IsNullOrEmpty(errorMessage)) { if (device != null && !string.IsNullOrWhiteSpace(device.SerialNo)) { var sb = new StringBuilder(); sb.Append(errorMessage); sb.Append(Environment.NewLine); sb.Append(Environment.NewLine); sb.Append(string.Format(TranslationSource.Instance["ConnectionFlow.VaultSerialNo"], device.SerialNo)); errorMessage = sb.ToString(); } WriteLine(errorMessage); await _ui.SendError(errorMessage, mac); } if (device != null) { if (workflowFinishedSuccessfully) { WriteLine($"Successfully finished the main workflow: ({device.Id})"); DeviceFinishedMainFlow?.Invoke(this, device); } else if (deleteVaultBond) { WriteLine($"Mainworkflow critical error, Removing ({device.Id})"); await _deviceManager.Remove(device); } else { WriteLine($"Main workflow failed, Disconnecting ({device.Id})"); await _deviceManager.DisconnectDevice(device); } } } catch (Exception ex) { WriteLine(ex, LogErrorSeverity.Error); } }
async void ProximityMonitorManager_DeviceBelowLockForToLong(object sender, IDevice device) { DisableDeviceReconnect(device); await _deviceManager.DisconnectDevice(device); }