private void OnValueProductionEvent(ValueProducedEventBase eventBase) { if (!InFlightRequests.TryGetValue(eventBase.GetRootCommand(), out var openRequest)) { return; } var transient = CreateTransient(eventBase.ValueId); var formattedValues = eventBase .FormattedValues .ToDictionary(k => k.MimeType, v => v.Value); var value = eventBase.Value; CreateDefaultFormattedValueIfEmpty(formattedValues, value); DisplayData executeResultData; switch (eventBase) { case DisplayedValueProduced _: executeResultData = new DisplayData( transient: transient, data: formattedValues); break; case ReturnValueProduced _: executeResultData = new ExecuteResult( openRequest.ExecutionCount, transient: transient, data: formattedValues); break; case DisplayedValueUpdated _: executeResultData = new UpdateDisplayData( transient: transient, data: formattedValues); break; default: throw new ArgumentException("Unsupported event type", nameof(eventBase)); } SendDisplayData(executeResultData, openRequest); }
private void OnValueProduced( ValueProducedEventBase valueProduced, Message request, IMessageSender ioPubChannel) { var transient = CreateTransient(valueProduced.ValueId); var formattedValues = valueProduced .FormattedValues .ToDictionary(k => k.MimeType, v => v.Value); var value = valueProduced.Value; CreateDefaultFormattedValueIfEmpty(formattedValues, value); JupyterMessageContent executeResultData; switch (valueProduced) { case DisplayedValueProduced _: executeResultData = new DisplayData( transient: transient, data: formattedValues); break; case ReturnValueProduced _: executeResultData = new ExecuteResult( _executionCount, transient: transient, data: formattedValues); break; case DisplayedValueUpdated _: executeResultData = new UpdateDisplayData( transient: transient, data: formattedValues); break; default: throw new ArgumentException("Unsupported event type", nameof(valueProduced)); } SendDisplayData(executeResultData, request, ioPubChannel); }