public Task Handle(ModelA model, WebSocketMessage message, IHorseWebSocket client) { Console.WriteLine("Model A received: " + model.Value); return(Task.CompletedTask); }
public Task OnError(Exception exception, ModelA model, WebSocketMessage message, IHorseWebSocket client) { throw new NotImplementedException(); }
public override async Task Execute(object model, WebSocketMessage message, IHorseWebSocket client) { IWebSocketMessageHandler <TModel> handler = null; try { if (_instance != null) { handler = _instance; } else if (_factory != null) { handler = (IWebSocketMessageHandler <TModel>)_factory(_consumerType); } else { return; } await handler.Handle((TModel)model, message, client); } catch (Exception e) { Action <Exception> errorAction = null; if (_errorFactory != null) { try { errorAction = _errorFactory(); } catch { } } if (handler == null) { if (errorAction != null) { errorAction(e); } return; } try { await handler.OnError(e, (TModel)model, message, client); if (errorAction != null) { errorAction(e); } } catch (Exception e2) { if (errorAction != null) { errorAction(e2); } } } }