Mapsui.Providers.ArcGIS.CapabilitiesHelper.FinishWebRequest C# (CSharp) Метод

FinishWebRequest() приватный Метод

private FinishWebRequest ( IAsyncResult result ) : void
result IAsyncResult
Результат void
        private void FinishWebRequest(IAsyncResult result)
        {
            try
            {
                var response = _webRequest.GetSyncResponse(_timeOut);
                var dataStream = CopyAndClose(response.GetResponseStream());

                DataContractJsonSerializer serializer = null;
                if(_capabilitiesType == CapabilitiesType.DynamicServiceCapabilities)
                    serializer = new DataContractJsonSerializer(typeof(ArcGISDynamicCapabilities));
                else if (_capabilitiesType == CapabilitiesType.ImageServiceCapabilities)
                    serializer = new DataContractJsonSerializer(typeof(ArcGISImageCapabilities));

                if (dataStream != null)
                {
                    _arcGisCapabilities = (IArcGISCapabilities)serializer.ReadObject(dataStream);
                    dataStream.Position = 0;
                }
                _arcGisCapabilities.ServiceUrl = _url;

                //Hack because ArcGIS Server doesn't return a normal StatusCode
                if (dataStream != null)
                {
                    using (var reader = new StreamReader(dataStream))
                    {
                        var contentString = reader.ReadToEnd();
                        if (contentString.Contains("{\"error\":{\""))
                        {
                            OnCapabilitiesFailed(EventArgs.Empty);
                            return;
                        }
                    }
                }

                if (dataStream != null) dataStream.Dispose();
                response.Dispose();

                _webRequest.EndGetResponse(result);
                OnFinished(EventArgs.Empty);
            }
            catch (Exception ex)
            {
                Logger.Log(LogLevel.Error, ex.Message, ex);
                OnCapabilitiesFailed(EventArgs.Empty);
            }
        }