public async Task ProcessSessionEndedAsync(SessionEndedEvent message) { var emailAndDemoMode = await IsDemoMode(message.CustomerId); if (!emailAndDemoMode.Item2) { _log.Info("Customer email not in demo mode", new { message.CustomerId }); return; } var newEmail = $"{Guid.NewGuid()}@{_demoModeEmailSuffix}"; _log.Info("Changing user's email because of logout", new { message.CustomerId, message.TimeStamp, message.Token, oldEmail = emailAndDemoMode.Item1, newEmail }); await _customerManagementServiceClient.EmailsApi.UpdateEmailAsync(new UpdateEmailRequestModel { CustomerId = message.CustomerId, NewEmail = newEmail }); }
public async Task WhenSetClientConnectionEncryptionLevelSetToLow_ThenConnectionSucceeds( [WindowsInstance(InitializeScript = @" & reg add ""HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services"" /t REG_DWORD /v MinEncryptionLevel /d 1 /f | Out-Default ")] ResourceTask <InstanceLocator> testInstance, [Credential(Role = PredefinedRole.IapTunnelUser)] ResourceTask <ICredential> credential) { var locator = await testInstance; using (var tunnel = IapTunnel.ForRdp( locator, await credential)) { var session = await Connect(tunnel, locator); AwaitEvent <SessionStartedEvent>(); Assert.IsNull(this.ExceptionShown); SessionEndedEvent expectedEvent = null; this.serviceProvider.GetService <IEventService>() .BindHandler <SessionEndedEvent>(e => { expectedEvent = e; }); Delay(TimeSpan.FromSeconds(5)); session.Close(); Assert.IsNotNull(expectedEvent); } }
public void EndSession(long sessionId) { _sessions.TryRemove(sessionId, out var session); SessionEndedEvent?.Invoke(session); _logger.LogInformation($"SessionId: {session.Id}"); }
private void OnRdpSessionEnded(SessionEndedEvent e) { var node = (VmInstanceNode)TryFindNode(e.Instance); if (node != null) { // Another connection might still be open, so re-check before // marking the node as not connected. node.IsConnected = this.sessionBroker.IsConnected(node.Reference); } }
public async void StartSession()//запуск сессии { for (int i = 1; i <= CountTests; i++) { var test = new Test((i - 1) * StepTest, i); //создаем экземпляр классTest await test.StartTest(); //запускаем и ожидаем выполнения теста ListTests.Add(test); //добавляем завершенный тест в список } SessionEndedEvent?.Invoke(); //уведомляем о завершении }
public async Task WhenCredentialsValid_ThenConnectingSucceeds( [Values(RdpConnectionBarState.AutoHide, RdpConnectionBarState.Off, RdpConnectionBarState.Pinned)] RdpConnectionBarState connectionBarState, [Values(RdpDesktopSize.ClientSize, RdpDesktopSize.ScreenSize)] RdpDesktopSize desktopSize, [Values(RdpAudioMode.DoNotPlay, RdpAudioMode.PlayLocally, RdpAudioMode.PlayOnServer)] RdpAudioMode audioMode, [Values(RdpRedirectClipboard.Disabled, RdpRedirectClipboard.Enabled)] RdpRedirectClipboard redirectClipboard, [WindowsInstance(MachineType = MachineTypeForRdp)] ResourceTask <InstanceLocator> testInstance, [Credential(Role = PredefinedRole.IapTunnelUser)] ResourceTask <ICredential> credential) { var locator = await testInstance; using (var tunnel = RdpTunnel.Create( locator, await credential)) using (var gceAdapter = new ComputeEngineAdapter(this.serviceProvider.GetService <IAuthorizationAdapter>())) { var credentials = await gceAdapter.ResetWindowsUserAsync( locator, CreateRandomUsername(), TimeSpan.FromSeconds(60), CancellationToken.None); var settings = VmInstanceConnectionSettings.CreateNew( locator.ProjectId, locator.Name); settings.Username.StringValue = credentials.UserName; settings.Password.Value = credentials.SecurePassword; settings.ConnectionBar.EnumValue = connectionBarState; settings.DesktopSize.EnumValue = desktopSize; settings.AudioMode.EnumValue = audioMode; settings.RedirectClipboard.EnumValue = redirectClipboard; settings.AuthenticationLevel.EnumValue = RdpAuthenticationLevel.NoServerAuthentication; settings.BitmapPersistence.EnumValue = RdpBitmapPersistence.Disabled; var rdpService = new RemoteDesktopSessionBroker(this.serviceProvider); var session = rdpService.Connect( locator, "localhost", (ushort)tunnel.LocalPort, settings); AwaitEvent <SessionStartedEvent>(); Assert.IsNull(this.ExceptionShown); SessionEndedEvent expectedEvent = null; this.serviceProvider.GetService <IEventService>() .BindHandler <SessionEndedEvent>(e => { expectedEvent = e; }); session.Close(); Assert.IsNotNull(expectedEvent); } }