RavenOverflow.Web.Controllers.HomeController.Index C# (CSharp) Method

Index() private method

private Index ( string displayName, string tag ) : System.Web.Mvc.ActionResult
displayName string
tag string
return System.Web.Mvc.ActionResult
        public ActionResult Index(string displayName, string tag)
        {
            string header;

            // 1. All the questions, ordered by most recent.
            IQueryable<QuestionWithDisplayName> questionsQuery = QuestionQuery(tag, out header);

            // 2. Popular Tags for a time period.
            // StackOverflow calls it 'recent tags'.
            IQueryable<RecentPopularTags.ReduceResult> recentPopularTags = RecentPopularTagsQuery();

            // 3. Logged in user information.
            IQueryable<User> userQuery = UserQuery(displayName);

            var viewModel = new IndexViewModel(ClaimsUser)
            {
                Header = header,
                QuestionListViewModel = new QuestionListViewModel
                {
                    Questions = questionsQuery.ToList()
                },
                RecentPopularTags = recentPopularTags.ToDictionary(x => x.Tag, x => x.Count),
                UserFavoriteTagListViewModel = new UserTagListViewModel
                {
                    Header = "Favorite Tags",
                    DivId1 = "interesting-tags",
                    DivId2 = "interestingtags",
                    Tags = userQuery == null
                               ? null
                               : (userQuery.SingleOrDefault() ??
                                  new User()).FavoriteTags
                },
                UserIgnoredTagList = new UserTagListViewModel
                {
                    Header = "Ignored Tags",
                    DivId1 = "ignored-tags",
                    DivId2 = "ignoredtags",
                    Tags = null
                }
            };

            return View(viewModel);
        }

Usage Example

コード例 #1
0
        public void GivenNoAuthenticatedUser_Index_ReturnsFavouriteTagsViewModelWithNoTags()
        {
            IndexesToExecute = new List<Type> {typeof (Questions_Search), typeof (RecentPopularTags)};

            // Arrange.
            // Note: we're faking that no user has been authenticated.
            var homeController = new HomeController(DocumentStore);
            ControllerUtilities.SetUpControllerContext(homeController);

            // Act.
            var result = homeController.Index(null, null) as ViewResult;

            // Assert.
            Assert.NotNull(result);

            var model = result.Model as IndexViewModel;
            Assert.NotNull(model);

            UserTagListViewModel userFavoriteTagListViewModel = model.UserFavoriteTagListViewModel;
            Assert.NotNull(userFavoriteTagListViewModel);

            Assert.Equal("Favorite Tags", userFavoriteTagListViewModel.Header);
            Assert.Equal("interesting-tags", userFavoriteTagListViewModel.DivId1);
            Assert.Equal("interestingtags", userFavoriteTagListViewModel.DivId2);
            Assert.Null(userFavoriteTagListViewModel.Tags);
        }
All Usage Examples Of RavenOverflow.Web.Controllers.HomeController::Index