Skip to content

Commit 235748b

Browse files
committed
Make records from classes, remove obsolete stuff
1 parent fb21793 commit 235748b

File tree

4 files changed

+17
-52
lines changed

4 files changed

+17
-52
lines changed

SimpleFeedReader/FeedItem.cs

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,58 +5,52 @@ namespace SimpleFeedReader;
55
/// <summary>
66
/// Represents an item from a <see cref="SyndicationFeed"/>.
77
/// </summary>
8-
public class FeedItem
8+
public record FeedItem
99
{
1010
/// <summary>
1111
/// The Id of the <see cref="FeedItem"/>.
1212
/// </summary>
13-
public string? Id { get; set; }
13+
public string? Id { get; init; }
1414

1515
/// <summary>
1616
/// The Title of the <see cref="FeedItem"/>.
1717
/// </summary>
18-
public string? Title { get; set; }
18+
public string? Title { get; init; }
1919

2020
/// <summary>
2121
/// The Content of the <see cref="FeedItem"/>.
2222
/// </summary>
23-
public string? Content { get; set; }
23+
public string? Content { get; init; }
2424

2525
/// <summary>
2626
/// The Summary of the <see cref="FeedItem"/>.
2727
/// </summary>
28-
public string? Summary { get; set; }
28+
public string? Summary { get; init; }
2929

3030
/// <summary>
3131
/// The Uri of the <see cref="FeedItem"/>.
3232
/// </summary>
33-
public Uri? Uri { get; set; }
33+
public Uri? Uri { get; init; }
3434

3535
/// <summary>
3636
/// The images of the <see cref="FeedItem"/>.
3737
/// </summary>
38-
public IEnumerable<Uri>? Images { get; set; }
38+
public IEnumerable<Uri>? Images { get; init; }
3939

4040
/// <summary>
4141
/// The vategories of the <see cref="FeedItem"/>.
4242
/// </summary>
43-
public IEnumerable<string>? Categories { get; set; }
44-
45-
/// <summary>
46-
/// The Date of the <see cref="FeedItem"/>.
47-
/// </summary>
48-
[Obsolete("Split into PublishDate and LastUpdatedDate")]
49-
public DateTimeOffset? Date => new[] { PublishDate, LastUpdatedDate }.Max();
43+
public IEnumerable<string>? Categories { get; init; }
5044

5145
/// <summary>
5246
/// The publication date of the <see cref="FeedItem"/>.
5347
/// </summary>
54-
public DateTimeOffset? PublishDate { get; set; }
48+
public DateTimeOffset? PublishDate { get; init; }
5549

5650
/// <summary>
5751
/// The date when the feeditem was last updated <see cref="FeedItem"/>.
5852
/// </summary>
59-
public DateTimeOffset? LastUpdatedDate { get; set; }
53+
public DateTimeOffset? LastUpdatedDate { get; init; }
6054

6155
/// <summary>
6256
/// Initializes a new <see cref="FeedItem"/>.
@@ -67,24 +61,6 @@ public FeedItem()
6761
Categories = [];
6862
}
6963

70-
/// <summary>
71-
/// Initializes a new <see cref="FeedItem"/> by copying the passed item's properties into the new instance.
72-
/// </summary>
73-
/// <param name="item">The <see cref="FeedItem"/> to copy.</param>
74-
/// <remarks>This is a copy-constructor.</remarks>
75-
public FeedItem(FeedItem item)
76-
: this()
77-
{
78-
Title = item.Title;
79-
Content = item.Content;
80-
Summary = item.Summary;
81-
Uri = item.Uri;
82-
PublishDate = item.PublishDate;
83-
LastUpdatedDate = item.LastUpdatedDate;
84-
Images = item.Images;
85-
Categories = item.Categories;
86-
}
87-
8864
/// <summary>
8965
/// Returns content, if any, otherwise returns the summary as content.
9066
/// </summary>

SimpleFeedReader/FeedReader.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ public IEnumerable<FeedItem> RetrieveFeeds(IEnumerable<string> uris, IFeedItemNo
9494
/// <returns>
9595
/// Returns an <see cref="IEnumerable&lt;FeedItem&gt;"/> of retrieved <see cref="FeedItem"/>s.
9696
/// </returns>
97-
public IEnumerable<FeedItem> RetrieveFeed(string uri) => RetrieveFeed(uri, DefaultNormalizer);
97+
public IEnumerable<FeedItem> RetrieveFeed(string uri)
98+
=> RetrieveFeed(uri, DefaultNormalizer);
9899

99100
/// <summary>
100101
/// Retrieves the specified feed.

SimpleFeedReader/SimpleFeedReader.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@
2929
</ItemGroup>
3030

3131
<ItemGroup>
32+
<PackageReference Include="PolySharp" Version="1.15.0">
33+
<PrivateAssets>all</PrivateAssets>
34+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
35+
</PackageReference>
3236
<PackageReference Include="System.ServiceModel.Syndication" Version="9.0.2" />
3337
</ItemGroup>
3438
</Project>

SimpleFeedReaderTests/FeedReaderTests.cs

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,6 @@ public void BasicRSSFeedTest()
3636

3737
Assert.IsTrue(items[0].GetContent()?.StartsWith("Lorem ipsum dolor sit"));
3838
Assert.IsTrue(items[0].GetSummary()?.StartsWith("Lorem ipsum dolor sit"));
39-
40-
#pragma warning disable 0618
41-
Assert.AreEqual(DateTimeOffset.Parse("2014-04-16T13:57:35.0000000+02:00", CultureInfo.InvariantCulture, DateTimeStyles.None), items[0].Date);
42-
Assert.AreEqual(DateTimeOffset.MinValue, items[1].Date);
43-
#pragma warning restore 0618
4439
}
4540

4641
[TestMethod]
@@ -69,12 +64,6 @@ public void BasicRSSWithImageFeedTest()
6964

7065
Assert.IsTrue(items[0].GetContent()?.StartsWith("Lorem ipsum dolor sit"));
7166
Assert.IsTrue(items[0].GetSummary()?.StartsWith("Lorem ipsum dolor sit"));
72-
73-
#pragma warning disable 0618
74-
Assert.AreEqual(DateTimeOffset.Parse("2014-04-16T13:57:35.0000000+02:00", CultureInfo.InvariantCulture, DateTimeStyles.None), items[0].Date);
75-
Assert.AreEqual(DateTimeOffset.MinValue, items[1].Date);
76-
#pragma warning restore 0618
77-
7867
Assert.AreEqual(2, items[0]?.Images?.Count());
7968
Assert.AreEqual("http://example.org/foo/bar/123abc.png", items[0].Images?.ElementAt(0).ToString());
8069
Assert.AreEqual("http://example.org/foo/bar/123abc_2.png", items[0].Images?.ElementAt(1).ToString());
@@ -168,11 +157,6 @@ public void BasicAtomFeedTest()
168157
Assert.AreEqual("urn:uuid:d58672c4-f62e-483e-ab00-ff0940113e29", items[1].Id);
169158
Assert.AreEqual(DateTimeOffset.MinValue, items[1].PublishDate);
170159
Assert.AreEqual(DateTimeOffset.MinValue, items[1].LastUpdatedDate);
171-
172-
#pragma warning disable 0618
173-
Assert.AreEqual(DateTimeOffset.Parse("2014-04-16T13:57:35.0000000+00:00", CultureInfo.InvariantCulture, DateTimeStyles.None), items[0].Date);
174-
Assert.AreEqual(DateTimeOffset.MinValue, items[1].Date);
175-
#pragma warning restore 0618
176160
}
177161

178162
[TestMethod]
@@ -223,7 +207,7 @@ public void BasicAtomCategoriesTest()
223207
}
224208

225209
#region TestClasses
226-
private class ExtendedFeedItem : FeedItem
210+
private record ExtendedFeedItem : FeedItem
227211
{
228212
public string[]? Authors { get; set; }
229213

0 commit comments

Comments
 (0)