protected override async Task <WebCallResult <T> > GetResponseAsync <T>(IRequest request, JsonSerializer deserializer, CancellationToken cancellationToken) { try { var response = await request.GetResponseAsync(cancellationToken).ConfigureAwait(false); var statusCode = response.StatusCode; var headers = response.ResponseHeaders; var responseStream = await response.GetResponseStreamAsync().ConfigureAwait(false); var streamReader = new StreamReader(responseStream); if (response.IsSuccessStatusCode) { var lPoloniexSerializer = PoloniexJsonSerializer.GetSerializer(); var desResult = Deserialize <T>(streamReader.ReadToEnd(), serializer: lPoloniexSerializer); responseStream.Close(); response.Close(); return(new WebCallResult <T>(statusCode, headers, desResult.Data, desResult.Error)); } else { using (var reader = new StreamReader(responseStream)) { var data = await reader.ReadToEndAsync().ConfigureAwait(false); responseStream.Close(); response.Close(); var parseResult = ValidateJson(data); return(new WebCallResult <T>(statusCode, headers, default, parseResult.Success ? ParseErrorResponse(parseResult.Data) : new ServerError(data)));
public static PoloniexJsonSerializer GetSerializer() { if (FInstance == null) { FInstance = new PoloniexJsonSerializer(); } return(FInstance); }