internal Task StopAction(WillDisappearEvent evt) { if (!scopes.TryGetValue(evt.Context, out var scope)) { logger.LogWarning("No active scope for '{ContextID}'", evt.Context); return(Task.CompletedTask); } scope.Dispose(); scopes.Remove(evt.Context); logger.LogInformation("Scope for '{ContextID}' disposed", evt.Context); return(Task.CompletedTask); }
public async void Action_OnWillDisappearEvent_ReturnsShowOkMessage() { // Setup var uuid = Guid.NewGuid().ToString("N"); (StreamDeckSoftwareEmulator emulator, StreamDeckClient client) = await ConnectAsync(51364, uuid); var streamDeckEvent = new WillDisappearEvent("testAction", "context", "device", new AppearancePayload(new Coordinates(0, 0), 0, false)); using (emulator) using (client) { // Act emulator.SendEvent(streamDeckEvent); var message = emulator.ReceiveMessage <ShowOkMessage>(); // Assert Assert.Equal(MessageEventType.ShowOk, message.Event); } }