internal async Task LoadPostsAsync() { this.PostsState = ItemsState.Loading; this.PostsState = await PresenterExtensions.RefreshItemsAsync <PostPresenter, PostModel>(this.Posts, this.host.RunQueryAsync(new ThreadPostsQuery(this.Model.Id)), m => new PostPresenter(this.host) { Model = m }); this.CurrentPost = this.Posts.FirstOrDefault(); }
internal async Task LoadThreadsAsync() { var threadId = this.CurrentThread?.Model.Id; this.ThreadsState = ItemsState.Loading; this.ThreadsState = await PresenterExtensions.RefreshItemsAsync( this.Threads, this.host.RunQueryAsync(GetThreadsQuery()), m => new ThreadPresenter(this.host) { Model = m }); this.CurrentThread = this.Threads.FirstOrDefault(thread => thread.Model.Id == threadId) ?? this.Threads.FirstOrDefault(thread => thread.IsNew) ?? this.Threads.FirstOrDefault(); }