Skip to content

Commit 131e404

Browse files
Refactor View Models
1 parent 3f9577f commit 131e404

File tree

2 files changed

+4
-10
lines changed

2 files changed

+4
-10
lines changed

sample/ViewModels/NewsViewModel_BadAsyncAwaitPractices.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ async Task<FrozenSet<StoryModel>> GetTopStories(CancellationToken token, int sto
7575
break;
7676
}
7777

78-
return topStoryList.Where(x => x is not null).OrderByDescending(x => x.Score).ToFrozenSet();
78+
return topStoryList.OrderByDescending(x => x.Score).ToFrozenSet();
7979
}
8080

8181
//ToDo Refactor

sample/ViewModels/NewsViewModel_GoodAsyncAwaitPractices.cs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,13 @@
44

55
namespace HackerNews;
66

7-
partial class NewsViewModel : BaseViewModel
7+
partial class NewsViewModel(IDispatcher dispatcher, HackerNewsAPIService hackerNewsAPIService) : BaseViewModel(dispatcher)
88
{
9-
readonly HackerNewsAPIService _hackerNewsAPIService;
109
readonly WeakEventManager _pullToRefreshEventManager = new();
1110

1211
[ObservableProperty]
1312
bool _isListRefreshing;
1413

15-
public NewsViewModel(IDispatcher dispatcher, HackerNewsAPIService hackerNewsAPIService) : base(dispatcher)
16-
{
17-
_hackerNewsAPIService = hackerNewsAPIService;
18-
}
19-
2014
public event EventHandler<string> PullToRefreshFailed
2115
{
2216
add => _pullToRefreshEventManager.AddEventHandler(value);
@@ -51,9 +45,9 @@ async Task Refresh(CancellationToken token)
5145

5246
async IAsyncEnumerable<StoryModel> GetTopStories(int storyCount, [EnumeratorCancellation] CancellationToken token)
5347
{
54-
var topStoryIds = await _hackerNewsAPIService.GetTopStoryIDs(token).ConfigureAwait(false);
48+
var topStoryIds = await hackerNewsAPIService.GetTopStoryIDs(token).ConfigureAwait(false);
5549

56-
var getTopStoryTaskList = topStoryIds.Select(id => _hackerNewsAPIService.GetStory(id, token)).ToList();
50+
var getTopStoryTaskList = topStoryIds.Select(id => hackerNewsAPIService.GetStory(id, token)).ToList();
5751

5852
while (getTopStoryTaskList.Any() && storyCount-- > 0)
5953
{

0 commit comments

Comments
 (0)