public async Task Send(BitmexWebsocketChannel toChannel, MultiplexingMessageBase multiplexingMessage) { var message = new List <object> { (int)multiplexingMessage.MessageType, toChannel.ChannelId, toChannel.ChannelName }; if (multiplexingMessage.Payload != null) { message.Add(multiplexingMessage.Payload); } var serialized = BitmexJsonSerializer.Serialize(message); try { await _communicator.Send(serialized).ConfigureAwait(false); } catch (Exception e) { Log.Error(e, L($"Exception while sending message '{serialized}'. Error: {e.Message}")); throw; } }
public Task Send <T>(T request) where T : RequestBase { BmxValidations.ValidateInput(request, nameof(request)); var serialized = request.IsRaw ? request.OperationString : BitmexJsonSerializer.Serialize(request); return(_communicator.Send(serialized)); }
public void Enum_String_CamelCase_Test() { var c = new MyClass() { MyEnum = MyEnum.TestValue }; var str = BitmexJsonSerializer.Serialize(c); str.Should().Be("{\"myEnum\":\"testValue\"}"); }
/// <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 async Task Send <T>(T request) where T : RequestBase { try { BmxValidations.ValidateInput(request, nameof(request)); var serialized = request.IsRaw ? request.OperationString : BitmexJsonSerializer.Serialize(request); await _communicator.Send(serialized).ConfigureAwait(false); } catch (Exception e) { Log.Error(e, L($"Exception while sending message '{request}'. Error: {e.Message}")); throw; } }
public override string ToQueryString() { var baseQuery = base.ToQueryString(); var filterValues = Filter == null ? string.Empty : $"filter={HttpUtility.UrlEncode(BitmexJsonSerializer.Serialize(Filter))}"; var currentQuery = $"{string.Join("&", filterValues)}"; if (string.IsNullOrWhiteSpace(baseQuery)) { return(currentQuery); } if (string.IsNullOrWhiteSpace(currentQuery)) { return(baseQuery); } if (!string.IsNullOrWhiteSpace(currentQuery) && !string.IsNullOrWhiteSpace(baseQuery)) { return(baseQuery + "&" + currentQuery); } return(string.Empty); }
public SubscriptionRequest(SubscriptionType subscriptionType, string symbol) : base(OperationType.subscribe, $"{BitmexJsonSerializer.Serialize(subscriptionType).Trim('"')}:{symbol}") { SubscriptionType = subscriptionType; Symbol = symbol; }
public string ToJson() { return(BitmexJsonSerializer.Serialize(this, GetType())); }
public override string GetContent() { return(BitmexJsonSerializer.Serialize(this, GetType())); }