Exemplo n.º 1
0
        private RecognitionShazamResponse ParseResponseForDoRecognition(string responseString)
        {
            var        recognitionShazamResponse = new RecognitionShazamResponse();
            var        xDocument              = XDocument.Parse(responseString);
            XNamespace xNamespace             = "http://orbit.shazam.com/v1/response";
            var        elementIgnoreNamespace = xDocument.Root.GetElementIgnoreNamespace(xNamespace, "doRecognition1");
            var        xElement = elementIgnoreNamespace;

            if (elementIgnoreNamespace == null)
            {
                var elementIgnoreNamespace1 = xDocument.Root.GetElementIgnoreNamespace(xNamespace, "error");
                var xElement1 = elementIgnoreNamespace1;
                if (elementIgnoreNamespace1 != null)
                {
                    recognitionShazamResponse.errorCode = int.Parse(xElement1.Attribute("code").Value);
                }
            }
            else
            {
                var elementIgnoreNamespace2 = xElement.GetElementIgnoreNamespace(xNamespace, "requestId");
                var xElement2 = elementIgnoreNamespace2;
                if (elementIgnoreNamespace2 != null)
                {
                    recognitionShazamResponse.requestId = ulong.Parse(xElement2.Attribute("id").Value);
                }
            }

            return(recognitionShazamResponse);
        }
Exemplo n.º 2
0
        private void RecognitionReadCallback(IAsyncResult asynchronousResult)
        {
            RecognitionShazamResponse recognitionShazamResponse = null;

            try
            {
                var asyncState      = (RequestContext)asynchronousResult.AsyncState;
                var webRequest      = (HttpWebRequest)asyncState.WebRequest;
                var httpWebResponse = (HttpWebResponse)webRequest.EndGetResponse(asynchronousResult);
                var requestBuilder  = asyncState.RequestBuilder as OrbitPostRequestBuilder;

                var responseString = "";
                if (httpWebResponse.GetResponseStream() != null)
                {
                    using (var streamReader = new StreamReader(httpWebResponse.GetResponseStream()))
                    {
                        responseString = streamReader.ReadToEnd();
                    }
                }

                recognitionShazamResponse = ParseResponseForDoRecognition(responseString);
                if (recognitionShazamResponse.errorMessage != "" && recognitionShazamResponse.errorMessage != null)
                {
                    throw new Exception(recognitionShazamResponse.errorMessage);
                }
                DoGetResult(recognitionShazamResponse.requestId);
            }
            catch (Exception e)
            {
                RecognitionFailed(e);
            }
        }