Пример #1
0
        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);
 }