Example #1
0
        public async Task QueryUserComments()
        {
            var userName = "******";
            var user     = TestHelper.SetPrincipal(userName);
            var cmd      = new CreateCommentCommand(1, null, "My pillow looks like jello").SetUserContext(user);
            var x        = await cmd.Execute();

            VoatAssert.IsValid(x);

            var q = new QueryUserComments(userName, SearchOptions.Default).SetUserContext(user);
            var r = await q.ExecuteAsync();

            Assert.AreEqual(true, r.Any(w => w.Content == "My pillow looks like jello"));
        }
Example #2
0
        public async Task QueryUserComments_Anon()
        {
            var userName = "******";
            var user     = TestHelper.SetPrincipal(userName);
            var cmd      = new CreateCommentCommand(2, null, "You can never know I said this: Bollocks").SetUserContext(user);
            var x        = await cmd.Execute();

            VoatAssert.IsValid(x);

            var q = new QueryUserComments(userName, SearchOptions.Default);
            var r = await q.ExecuteAsync();

            Assert.AreEqual(false, r.Any(w => w.Content == "You can never know I said this: Bollocks"));
        }
Example #3
0
        public async Task <ActionResult> Comments(string userName, int?page = null)
        {
            if (page.HasValue && page.Value < 0)
            {
                return(ErrorView(ErrorViewModel.GetErrorViewModel(ErrorType.NotFound)));
            }

            var originalUserName = UserHelper.OriginalUsername(userName);

            if (String.IsNullOrEmpty(originalUserName))
            {
                return(ErrorView(ErrorViewModel.GetErrorViewModel(ErrorType.NotFound)));
            }
            ViewBag.UserName = originalUserName;

            //if user is accesing their own comments, increase max page size to 100, else use default
            int?maxPages = (originalUserName == User.Identity.Name ? 100 : (int?)null);

            var q = new QueryUserComments(userName,
                                          new Data.SearchOptions(maxPages)
            {
                Page = page ?? 0,
                Sort = Domain.Models.SortAlgorithm.New,
            });

            var comments = await q.ExecuteAsync();

            //var userComments = from c in _db.Comments.OrderByDescending(c => c.CreationDate)
            //                    where c.UserName.Equals(originalUserName)
            //                    && !c.IsAnonymized
            //                    && !c.IsDeleted
            //                    //&& !c.Submission.Subverse1.IsAnonymized //Don't think we need this condition
            //                    select c;

            var paged = new PaginatedList <Domain.Models.SubmissionComment>(comments, page ?? 0, PAGE_SIZE, -1);

            ViewBag.NavigationViewModel = new NavigationViewModel()
            {
                MenuType    = MenuType.UserProfile,
                Name        = originalUserName,
                BasePath    = "/user/" + originalUserName,
                Description = originalUserName + "'s Comments",
            };

            ViewBag.RobotIndexing = Domain.Models.RobotIndexing.None;
            return(View(paged));
        }