Exemplo n.º 1
0
 public ShazamResponse(ResultShazamResponse result)
 {
     if (result.newTag != null)
     {
         Tag = result.newTag;
     }
 }
Exemplo n.º 2
0
        private void ResultReadCallback(IAsyncResult asynchronousResult)
        {
            ResultShazamResponse resultShazamResponse = null;

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

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

                resultShazamResponse = ParseResponseForRequestResults(responseString);
                if (resultShazamResponse.errorMessage != "" && resultShazamResponse.errorMessage != null)
                {
                    throw new Exception(resultShazamResponse.errorMessage);
                }
                RaiseOnRecongnitionStateChanged(ShazamRecognitionState.Done, new ShazamResponse(resultShazamResponse));
            }
            catch (Exception e)
            {
                RecognitionFailed(e);
            }
        }
Exemplo n.º 3
0
        private ResultShazamResponse ParseResponseForRequestResults(string responseString)
        {
            var        resultShazamResponse   = new ResultShazamResponse();
            var        xDocument              = XDocument.Parse(responseString);
            XNamespace xNamespace             = "http://orbit.shazam.com/v1/response";
            var        elementIgnoreNamespace = xDocument.Root.GetElementIgnoreNamespace(xNamespace, "requestResults1");
            var        xElement = elementIgnoreNamespace;

            if (elementIgnoreNamespace == null)
            {
                var elementIgnoreNamespace1 = xDocument.Root.GetElementIgnoreNamespace(xNamespace, "error");
                var xElement1 = elementIgnoreNamespace1;
                if (elementIgnoreNamespace1 != null)
                {
                    resultShazamResponse.errorCode = int.Parse(xElement1.Attribute("code").Value);
                }
            }
            else
            {
                var elementIgnoreNamespace2 = xElement.GetElementIgnoreNamespace(xNamespace, "request");
                var tagVO = new TagVO();
                tagVO.Id = elementIgnoreNamespace2.Attribute("requestId").Value;
                resultShazamResponse.newTag = tagVO;
                TrackVO trackVO   = null;
                var     num       = 0;
                var     xElement2 = xElement.GetElementIgnoreNamespace(xNamespace, "tracks");
                var     elementIgnoreNamespace3 = xElement2.GetElementIgnoreNamespace(xNamespace, "track");
                if (elementIgnoreNamespace3 != null)
                {
                    trackVO = ParseXmlElementForTrackData(xNamespace, elementIgnoreNamespace3, false);
                    if (elementIgnoreNamespace3.Attribute("cache-max-age") != null)
                    {
                        num = Convert.ToInt32(elementIgnoreNamespace3.Attribute("cache-max-age").Value);
                    }
                }

                if (trackVO != null)
                {
                    resultShazamResponse.newTag.Track = trackVO;
                }
            }

            return(resultShazamResponse);
        }