Example #1
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);
        }
Example #2
0
        private TrackVO ParseXmlElementForTrackData(XNamespace xNamespace, XElement trackElem, bool fromList = false)
        {
            var trackVO = new TrackVO();

            trackVO.Id    = Convert.ToInt32(trackElem.Attribute("id").Value);
            trackVO.Title = trackElem.GetElementIgnoreNamespace(xNamespace, "ttitle").Value;
            var elementIgnoreNamespace = trackElem.GetElementIgnoreNamespace(xNamespace, "tartists");

            if (elementIgnoreNamespace != null)
            {
                var xElement = elementIgnoreNamespace.GetElementIgnoreNamespace(xNamespace, "tartist");
                if (xElement != null)
                {
                    trackVO.Artist = xElement.Value;
                }
            }

            var elementIgnoreNamespace1 = trackElem.GetElementIgnoreNamespace(xNamespace, "tlabel");

            if (elementIgnoreNamespace1 != null)
            {
                trackVO.Label = elementIgnoreNamespace1.Value;
            }
            var xElement1 = trackElem.GetElementIgnoreNamespace(xNamespace, "tgenre");

            if (xElement1 != null)
            {
                var elementIgnoreNamespace2 = xElement1.GetElementIgnoreNamespace(xNamespace, "tparentGenre");
                if (elementIgnoreNamespace2 != null)
                {
                    trackVO.Genre = elementIgnoreNamespace2.Value;
                }
            }

            var xElement2 = trackElem.GetElementIgnoreNamespace(xNamespace, "tcoverart");

            if (xElement2 != null)
            {
                trackVO.ImageUri = xElement2.Value;
            }
            var elementIgnoreNamespace3 = trackElem.GetElementIgnoreNamespace(xNamespace, "addOns");

            if (elementIgnoreNamespace3 != null)
            {
                foreach (var xElement3 in elementIgnoreNamespace3.Elements(xNamespace + "addOn"))
                {
                    if (xElement3.Attribute("providerName").Value == "Zune")
                    {
                        var elementIgnoreNamespace4 = xElement3.GetElementIgnoreNamespace(xNamespace, "actions");
                        if (elementIgnoreNamespace4 != null)
                        {
                            var xElement4 =
                                elementIgnoreNamespace4.GetElementIgnoreNamespace(xNamespace, "MarketplaceSearchTask");
                            if (xElement4 != null)
                            {
                                trackVO.ContentType = xElement4.Attribute("ContentType").Value;
                                trackVO.SearchTerms = xElement4.Attribute("SearchTerms").Value;
                            }
                        }

                        var elementIgnoreNamespace5 = xElement3.GetElementIgnoreNamespace(xNamespace, "content");
                        if (elementIgnoreNamespace5 == null)
                        {
                            continue;
                        }
                        trackVO.PurchaseUrl = elementIgnoreNamespace5.Value;
                    }
                    else if (xElement3.Attribute("providerName").Value != "Share")
                    {
                        var xElement5 = xElement3.GetElementIgnoreNamespace(xNamespace, "actions");
                        if (xElement5 == null)
                        {
                            continue;
                        }
                        var addOnVO = new AddOnVO();
                        addOnVO.ProviderName = xElement3.Attribute("providerName").Value;
                        addOnVO.Caption      = xElement3.Attribute("typeName").Value;
                        var num = -1;
                        if (int.TryParse(xElement3.Attribute("typeId").Value, out num))
                        {
                            addOnVO.TypeId = num;
                        }
                        var num1 = -1;
                        if (xElement3.Attribute("creditTypeId") != null &&
                            int.TryParse(xElement3.Attribute("creditTypeId").Value, out num1))
                        {
                            addOnVO.CreditTypeId = num1;
                        }
                        addOnVO.Actions = new List <AddOnActionVO>();
                        foreach (var xElement6 in xElement5.Elements())
                        {
                            var addOnActionVO = new AddOnActionVO();
                            addOnActionVO.Url = xElement6.Attribute("Uri").Value;
                            var localName = xElement6.Name.LocalName;
                            var str       = localName;
                            if (localName != null)
                            {
                                if (str == "LaunchUriTask")
                                {
                                    addOnActionVO.Type = AddOnActionVO.ActionType.LaunchUri;
                                }
                                else if (str == "WebViewTask")
                                {
                                    addOnActionVO.Type = AddOnActionVO.ActionType.WebView;
                                }
                            }
                            addOnVO.Actions.Add(addOnActionVO);
                        }

                        var providerName = addOnVO.ProviderName;
                        var str1         = providerName;
                        if (providerName != null)
                        {
                            switch (str1)
                            {
                            case "Buy":
                            {
                                addOnVO.ImageUri = "ms-appx:///PresentationLib/Assets/buy.png";
                                break;
                            }

                            case "YouTube":
                            {
                                addOnVO.ImageUri = "ms-appx:///PresentationLib/Assets/youtube.png";
                                break;
                            }

                            case "Biography":
                            {
                                addOnVO.ImageUri = "ms-appx:///PresentationLib/Assets/biog.png";
                                break;
                            }

                            case "Discography":
                            {
                                addOnVO.ImageUri = "ms-appx:///PresentationLib/Assets/discog.png";
                                break;
                            }

                            case "ProductReview":
                            {
                                addOnVO.ImageUri = "ms-appx:///PresentationLib/Assets/reviews.png";
                                break;
                            }

                            case "TrackReview":
                            {
                                addOnVO.ImageUri = "ms-appx:///PresentationLib/Assets/trackreview.png";
                                break;
                            }

                            case "ShazamLyrics":
                            {
                                addOnVO.ImageUri = "ms-appx:///PresentationLib/Assets/lyrics.png";
                                break;
                            }

                            case "Recommendations":
                            {
                                addOnVO.ImageUri = "ms-appx:///PresentationLib/Assets/recommendations.png";
                                break;
                            }
                            }
                        }
                        addOnVO.AssociateOwnerTrack(trackVO);
                        trackVO.AddOns = new List <AddOnVO>();
                        trackVO.AddOns.Add(addOnVO);
                    }
                    else
                    {
                        var elementIgnoreNamespace6 = xElement3.GetElementIgnoreNamespace(xNamespace, "actions");
                        if (elementIgnoreNamespace6 == null)
                        {
                            continue;
                        }
                        var elementIgnoreNamespace7 =
                            elementIgnoreNamespace6.GetElementIgnoreNamespace(xNamespace, "ShareLinkTask");
                        if (elementIgnoreNamespace7 == null)
                        {
                            continue;
                        }
                        trackVO.ShareLinkUri     = elementIgnoreNamespace7.Attribute("LinkUri").Value;
                        trackVO.ShareLinkTitle   = elementIgnoreNamespace7.Attribute("Title").Value;
                        trackVO.ShareLinkMessage = elementIgnoreNamespace7.Attribute("Message").Value;
                    }
                }
            }

            var xElement7 = trackElem.GetElementIgnoreNamespace(xNamespace, "tproduct");

            if (xElement7 != null)
            {
                trackVO.Product = xElement7.Value;
            }
            return(trackVO);
        }