private WebEventData(int browserRendererId, ulong eventHandlerId, EventFieldInfo eventFieldInfo, EventArgs eventArgs) { BrowserRendererId = browserRendererId; EventHandlerId = eventHandlerId; EventFieldInfo = eventFieldInfo; EventArgs = eventArgs; }
/// <inheritdoc/> public new Task DispatchEventAsync(ulong eventHandlerId, EventFieldInfo fieldInfo, EventArgs eventArgs) { if (fieldInfo is null) { throw new ArgumentNullException(nameof(fieldInfo)); } _logger.LogDebug(new EventId(1, nameof(DispatchEventAsync)), $"Starting trigger of '{fieldInfo.FieldValue}'"); var task = Dispatcher.InvokeAsync(() => { try { return(base.DispatchEventAsync(eventHandlerId, fieldInfo, eventArgs)); } catch (Exception e) { _unhandledException = e; throw; } }); AssertNoSynchronousErrors(); _logger.LogDebug(new EventId(1, nameof(DispatchEventAsync)), $"Finished trigger of '{fieldInfo.FieldValue}'"); return(task); }
private static EventFieldInfo InterpretEventFieldInfo(EventFieldInfo fieldInfo) { // The incoming field value can be either a bool or a string, but since the .NET property // type is 'object', it will deserialize initially as a JsonElement if (fieldInfo?.FieldValue is JsonElement attributeValueJsonElement) { switch (attributeValueJsonElement.ValueKind) { case JsonValueKind.True: case JsonValueKind.False: return(new EventFieldInfo { ComponentId = fieldInfo.ComponentId, FieldValue = attributeValueJsonElement.GetBoolean() }); default: return(new EventFieldInfo { ComponentId = fieldInfo.ComponentId, FieldValue = attributeValueJsonElement.GetString() }); } } return(null); }
private static EventFieldInfo?ReadEventFieldInfo(JsonElement jsonElement) { if (jsonElement.ValueKind is JsonValueKind.Null) { return(null); } var eventFieldInfo = new EventFieldInfo(); foreach (var property in jsonElement.EnumerateObject()) { if (property.NameEquals(ComponentIdKey.EncodedUtf8Bytes)) { eventFieldInfo.ComponentId = property.Value.GetInt32(); } else if (property.NameEquals(FieldValueKey.EncodedUtf8Bytes)) { if (property.Value.ValueKind is JsonValueKind.True or JsonValueKind.False) { eventFieldInfo.FieldValue = property.Value.GetBoolean(); } else { eventFieldInfo.FieldValue = property.Value.GetString() !; } }
public new Task DispatchEventAsync(ulong eventHandlerId, EventFieldInfo fieldInfo, EventArgs eventArgs) { var task = Dispatcher.InvokeAsync( () => base.DispatchEventAsync(eventHandlerId, fieldInfo, eventArgs)); AssertNoSynchronousErrors(); return(task); }
/// <inheritdoc/> public new Task DispatchEventAsync(ulong eventHandlerId, EventFieldInfo fieldInfo, EventArgs eventArgs) { var task = Dispatcher.InvokeAsync(() => { try { base.DispatchEventAsync(eventHandlerId, fieldInfo, eventArgs); } catch (Exception e) { _unhandledException = e; throw; } }); AssertNoSynchronousErrors(); return(task); }
public Task DispatchEvent(dynamic eventDescriptor, string eventArgsJson) { EventFieldInfo fieldInfo = null; var sourceFieldInfo = eventDescriptor.eventFieldInfo; if (sourceFieldInfo != null) { fieldInfo = new EventFieldInfo { ComponentId = (int)eventDescriptor.eventFieldInfo.componentId, FieldValue = eventDescriptor.eventFieldInfo.fieldValue }; } return(DispatchEventOriginal(new WebEventDescriptor { // TODO DM 26.08.2019: Replace those casts once we support proper number handling BrowserRendererId = (int)eventDescriptor.browserRendererId, EventHandlerId = (ulong)eventDescriptor.eventHandlerId, EventArgsType = eventDescriptor.eventArgsType, EventFieldInfo = fieldInfo }, eventArgsJson)); }
public new Task DispatchEventAsync(int eventHandlerId, EventFieldInfo eventFieldInfo, UIEventArgs args) => InvokeAsync(() => base.DispatchEventAsync(eventHandlerId, eventFieldInfo, args));
public new Task DispatchEventAsync(ulong eventHandlerId, EventFieldInfo eventFieldInfo, EventArgs args) => Dispatcher.InvokeAsync(() => base.DispatchEventAsync(eventHandlerId, eventFieldInfo, args));