AcoustID.Web.XmlResponseParser.ParseLookupResponse C# (CSharp) Method

ParseLookupResponse() public method

public ParseLookupResponse ( string text ) : LookupResponse
text string
return LookupResponse
        public LookupResponse ParseLookupResponse(string text)
        {
            try
            {
                var root = XDocument.Parse(text).Element("response");

                var status = root.Element("status");

                if (status.Value == "ok")
                {
                    var response = new LookupResponse();

                    var list = root.Element("results").Descendants("result");

                    foreach (var item in list)
                    {
                        response.Results.Add(ParseLookupResult(item));
                    }

                    return response;
                }

                if (status.Value == "error")
                {
                    var error = root.Element("error");

                    return new LookupResponse(HttpStatusCode.BadRequest, error.Element("message").Value);
                }

                return null;
            }
            catch (Exception e)
            {
                throw e;
            }
        }

Usage Example

コード例 #1
0
        public void TestParseLookupResponseMeta1()
        {
            var xml = TestsHelper.LoadTextFile("lookup-recordings.xml");

            var parser = new XmlResponseParser();
            var response = parser.ParseLookupResponse(xml);

            Assert.AreEqual(response.Results.Count, 3);

            var recordings = response.Results[0].Recordings;

            Assert.IsNotNull(recordings);
            Assert.IsTrue(recordings.Count > 0);

            var recording = recordings[0];

            Assert.IsNotNull(recording);
            Assert.IsFalse(string.IsNullOrEmpty(recording.Id));
            Assert.IsFalse(string.IsNullOrEmpty(recording.Title));
            Assert.IsTrue(recording.Duration > 0);

            Assert.IsTrue(recording.Artists.Count > 0);

            var artist = recording.Artists[0];

            Assert.IsNotNull(artist);
            Assert.IsFalse(string.IsNullOrEmpty(artist.Id));
            Assert.IsFalse(string.IsNullOrEmpty(artist.Name));
        }
All Usage Examples Of AcoustID.Web.XmlResponseParser::ParseLookupResponse