public static bool TryHandle(string response, Subject <OrdersResponse> subject) { if (!FtxJsonSerializer.ContainsValue(response, "orders")) { return(false); } var parsed = FtxJsonSerializer.Deserialize <OrdersResponse>(response); subject.OnNext(parsed); return(true); }
internal static bool TryHandle(string response, ISubject <OrderBookUpdateResponse> subject, string topicName) { if (!FtxJsonSerializer.ContainsValue(response, topicName) || !FtxJsonSerializer.ContainsValue(response, "orderbook")) { return(false); } var parsed = FtxJsonSerializer.Deserialize <OrderBookUpdateResponse>(response); subject.OnNext(parsed); return(true); }
internal static bool TryHandle(string response, Subject <ErrorResponse> subject) { if (!FtxJsonSerializer.ContainsProperty(response, "error")) { return(false); } var error = JsonSerializer.Deserialize <ErrorResponse>(response); Log.Error($"Error received - message: {error.Msg}, code: {error.Code}"); subject.OnNext(error); return(true); }
internal static bool TryHandle(string response, ISubject <SubscribedResponse> subject) { if (!FtxJsonSerializer.ContainsValue(response, "subscribed") && !FtxJsonSerializer.ContainsValue(response, "unsubscribed")) { return(false); } var parsed = FtxJsonSerializer.Deserialize <SubscribedResponse>(response); subject.OnNext(parsed); return(true); }
internal static bool TryHandle(string response, ISubject <MarketsResponse> subject) { // if (!FtxJsonSerializer.ContainsValue(response, "partial") || // !FtxJsonSerializer.ContainsValue(response, "markets")) if (!FtxJsonSerializer.ContainsValue(response, "markets")) { return(false); } var parsed = FtxJsonSerializer.Deserialize <MarketsResponse>(response); subject.OnNext(parsed); return(true); }
/// <summary> /// Serializes request and sends message via websocket communicator. /// It logs and re-throws every exception. /// </summary> /// <param name="request">Request/message to be sent</param> public void Send <T>(T request) where T : RequestBase { try { FtxValidations.ValidateInput(request, nameof(request)); var serialized = FtxJsonSerializer.Serialize(request); _communicator.Send(serialized); } catch (Exception e) { Log.Error(e, L($"Exception while sending message '{request}'. Error: {e.Message}")); throw; } }