public override bool TryGetMember(GetMemberBinder binder, out object result)
		{
			result = null;
			switch (binder.Name)
			{
				case "Value":
					result = _elements[0].Value;
					break;
				case "Count":
					result = _elements.Count;
					break;
				default:
					var attr = _elements[0].Attribute(XName.Get(binder.Name));
					if (attr == null)
					{
						var items = _elements.Descendants(XName.Get(binder.Name));
						if (items == null || items.Count() == 0)
							return false;
						result = new DynamicXmlParser(items);
						break;
					}
					result = attr;
					break;
			}
			return true;
		}
Esempio n. 2
0
        public override bool TryGetIndex(GetIndexBinder binder, object[] indexes, out object result)
        {
            var ndx = (int)indexes[0];

            result = new DynamicXmlParser(_elements[ndx]);
            return(true);
        }
Esempio n. 3
0
        public override bool TryGetMember(GetMemberBinder binder, out object result)
        {
            result = null;
            switch (binder.Name)
            {
            case "Value":
                result = _elements[0].Value;
                break;

            case "Count":
                result = _elements.Count;
                break;

            default:
                var attr = _elements[0].Attribute(XName.Get(binder.Name));
                if (attr == null)
                {
                    var items = _elements.Descendants(XName.Get(binder.Name));
                    if (items == null || items.Count() == 0)
                    {
                        return(false);
                    }
                    result = new DynamicXmlParser(items);
                    break;
                }
                result = attr;
                break;
            }
            return(true);
        }
		public void Can_deal_with_xml()
		{
			string xml = "<books><book id='1'><name>Book with 2 authors</name><authors><author id='1'>Billy</author></authors></book><book id='2'><name>The Bobbit</name></book></books>";

			dynamic dx = new DynamicXmlParser(xml);
			var condition = dx.book[1].name[0].Value;
			Assert.That(condition, Is.EqualTo("The Bobbit"));
		}
		public void Can_get_an_artists_releases()
		{
			const string endpoint = "artist/releases";

			var endPointInfo = new EndPointInfo { Uri = endpoint, Parameters = new NameValueCollection { { "artistId", "1" } } };

			string xml = _endpointResolver.GetRawXml(endPointInfo);

			dynamic dx = new DynamicXmlParser(xml);

			var name = dx.releases.release[0].title.Value;
			var secondName = dx.releases.release[1].title.Value;

			Assert.That(name, Is.EqualTo("Night Train"));
			Assert.That(secondName, Is.EqualTo("Crystal Ball"));
		}
		public void Can_get_an_artist()
		{
			const string endpoint = "artist/details";

			var endPointInfo = new EndPointInfo {Uri = endpoint, Parameters =  new NameValueCollection{{"artistId", "1"}}};

			string xml = _endpointResolver.GetRawXml(endPointInfo);

			dynamic dx = new DynamicXmlParser(xml);

			var name = dx.artist[0].name.Value;
			var sortName = dx.artist[0].sortName.Value;
			var url = dx.artist[0].url.Value;

			Assert.That(name, Is.EqualTo("Keane"));
			Assert.That(sortName, Is.EqualTo("Keane"));
			Assert.That(url, Is.StringStarting("http://www.7digital.com/artists/keane/"));
		}
		public override bool TryGetIndex(GetIndexBinder binder, object[] indexes, out object result)
		{
			var ndx = (int)indexes[0];
			result = new DynamicXmlParser(_elements[ndx]);
			return true;
		}