public async Task <FeedsPage> GetFeed(int pageNumber = 0, int pageSize = 10) { Page <FeedsEntity> page = await DbContext.FeedsRepo.PageAsync(pageNumber *pageSize, pageSize).ConfigureAwait(false); var authorsIds = page.Items.Select(i => i.AuthorId).Distinct(); var authors = await DbContext.UsersRepo.GetByKeysAsync(authorsIds); var authorIdToNameMapping = authors.ToDictionary(u => u.Id, u => string.Format("{0} {1}", u.FirstName, u.LastName)); var result = new FeedsPage { CurrentPage = page.CurrentPage, Items = page.Items.Select(i => new Feed { AuthorId = i.AuthorId, Id = i.Id, Text = i.Text, AurhorName = authorIdToNameMapping[i.AuthorId] }).ToList(), ItemsPerPage = page.ItemsPerPage, TotalItems = page.TotalItems, TotalPages = page.TotalPages }; return(result); }
/// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name="e">Event data that describes how this page was reached. The Parameter /// property is typically used to configure the page.</param> protected override void OnNavigatedTo(NavigationEventArgs e) { SetRandomImageName(); viewModel = (ViewModel)e.Parameter; feedsViewModel = new FeedsViewModel(); Task.Run(new Func <Task>(InitFeedsViewModel)); this.DataContext = feedsViewModel; FeedsPage.Navigate(typeof(Feeds), e.Parameter); }