コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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);
        }