-
Notifications
You must be signed in to change notification settings - Fork 0
/
Episode.cs
34 lines (30 loc) · 1.1 KB
/
Episode.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System.Linq;
using System.Xml.Linq;
namespace SurfingTheCode.DotNetRocks
{
public sealed class Episode
{
public string Title { get; set; }
public string PublicationDate { get; set; }
public string AudioUrl { get; set; }
public string Number { get; set; }
public override string ToString()
{
return $"{PublicationDate}: {Title}";
}
public static Episode FromXElement(XElement element)
{
var title = element.Elements().Single(e => e.Name == "title").Value;
var publicationDate = element.Elements().Single(e => e.Name == "pubDate").Value.Substring(5, 11);
var audioUrl = element.Elements().Single(e => e.Name == "enclosure").Attribute("url").Value;
var link = element.Elements().Single(e => e.Name == "link").Value;
return new Episode
{
Title = title,
PublicationDate = publicationDate,
AudioUrl = audioUrl,
Number = link.Substring(link.LastIndexOf('=') + 1)
};
}
}
}