示例#1
0
        public async Task <JsonResult> Subscribe(Domain.Models.DomainType domainType, string name, Domain.Models.SubscriptionAction subscribeAction)
        {
            var domainReference = Domain.Models.DomainReference.Parse(name, domainType);

            var cmd    = new SubscribeCommand(domainReference, subscribeAction).SetUserContext(User);
            var result = await cmd.Execute();

            return(JsonResult(result));
        }
示例#2
0
        public async Task <ViewResult> Blocked(Domain.Models.DomainType blockType, int?page)
        {
            switch (blockType)
            {
            case Domain.Models.DomainType.User:
                var q      = new QueryUserBlocks();
                var blocks = await q.ExecuteAsync();

                var userBlocks = blocks.Where(x => x.Type == Domain.Models.DomainType.User).OrderBy(x => x.Name);

                return(View("BlockedUsers", userBlocks));

                break;

            case Domain.Models.DomainType.Subverse:
            default:

                //Original Code below, leaving as is bc it works
                ViewBag.SelectedSubverse = "subverses";
                ViewBag.SubversesView    = "blocked";
                const int pageSize   = 25;
                int       pageNumber = (page ?? 0);

                if (pageNumber < 0)
                {
                    return(NotFoundErrorView());
                }
                string userName = User.Identity.Name;
                // get a list of user blocked subverses with details and order by subverse name, ascending
                IQueryable <SubverseDetailsViewModel> blockedSubverses = from c in _db.Subverses
                                                                         join a in _db.UserBlockedSubverses
                                                                         on c.Name equals a.Subverse
                                                                         where a.UserName.Equals(userName)
                                                                         orderby a.Subverse ascending
                                                                         select new SubverseDetailsViewModel
                {
                    Name          = c.Name,
                    Title         = c.Title,
                    Description   = c.Description,
                    Creation_date = c.CreationDate,
                    Subscribers   = c.SubscriberCount
                };

                var paginatedBlockedSubverses = new PaginatedList <SubverseDetailsViewModel>(blockedSubverses, page ?? 0, pageSize);

                return(View("BlockedSubverses", paginatedBlockedSubverses));

                break;
            }
        }
示例#3
0
        public async Task <ActionResult> Block(Domain.Models.DomainType blockType, string name)
        {
            //Used by voat.js
            var cmd    = new BlockCommand(blockType, name, true);
            var result = await cmd.Execute();

            if (Request.IsAjaxRequest())
            {
                return(Json(result));
            }
            else
            {
                return(await Blocked(blockType, null));
            }
        }
示例#4
0
        public async Task <ActionResult> Subscribed(Domain.Models.DomainType domainType)
        {
            switch (domainType)
            {
            case Domain.Models.DomainType.Subverse:
                var domainReference = new Domain.Models.DomainReference(Domain.Models.DomainType.Set, Domain.Models.SetType.Front.ToString(), User.Identity.Name);
                return(RedirectToAction("Details", "Set", new { name = domainReference.FullName }));

                break;

            case Domain.Models.DomainType.Set:


                var options = new SearchOptions(Request.QueryString.Value);

                var q = new QueryUserSubscribedSets(options).SetUserContext(User);

                var results = await q.ExecuteAsync();

                var paged = new Utilities.PaginatedList <Domain.Models.DomainReferenceDetails>(results, options.Page, options.Count);

                ViewBag.NavigationViewModel = new Models.ViewModels.NavigationViewModel()
                {
                    Description = "Subscribed Sets",
                    Name        = "No Idea",
                    MenuType    = Models.ViewModels.MenuType.Discovery,
                    BasePath    = null,
                    Sort        = null
                };
                ViewBag.DomainType = Voat.Domain.Models.DomainType.Set;
                return(View(paged));

                break;

            default:
            case Domain.Models.DomainType.User:
                throw new NotImplementedException("This isn't done yet!");
                break;
            }
        }
示例#5
0
        public async Task <ActionResult> Blocked(Domain.Models.DomainType blockType, int?page)
        {
            switch (blockType)
            {
            case Domain.Models.DomainType.User:
                var q      = new QueryUserBlocks().SetUserContext(User);
                var blocks = await q.ExecuteAsync();

                var userBlocks = blocks.Where(x => x.Type == Domain.Models.DomainType.User).OrderBy(x => x.Name);

                var originalUserName = User.Identity.Name;
                ViewBag.NavigationViewModel = new NavigationViewModel()
                {
                    MenuType    = MenuType.UserProfile,
                    Name        = originalUserName,
                    BasePath    = "/user/" + originalUserName,
                    Description = originalUserName + "'s Blocked Users",
                };

                return(View("BlockedUsers", userBlocks));

                break;

            case Domain.Models.DomainType.Subverse:
            default:

                var domainReference = new Domain.Models.DomainReference(Domain.Models.DomainType.Set, Domain.Models.SetType.Blocked.ToString(), User.Identity.Name);
                return(RedirectToAction("Details", "Set", new { name = domainReference.FullName }));

                ////Original Code below, leaving as is bc it works
                //ViewBag.SelectedSubverse = "subverses";
                //ViewBag.SubversesView = "blocked";
                //const int pageSize = 25;
                //int pageNumber = (page ?? 0);

                //if (pageNumber < 0)
                //{
                //    return ErrorView(ErrorViewModel.GetErrorViewModel(ErrorType.NotFound));
                //}
                //string userName = User.Identity.Name;
                //// get a list of user blocked subverses with details and order by subverse name, ascending
                //IQueryable<SubverseDetailsViewModel> blockedSubverses = from c in _db.Subverses
                //                                                        join a in _db.UserBlockedSubverses
                //                                                        on c.Name equals a.Subverse
                //                                                        where a.UserName.Equals(userName)
                //                                                        orderby a.Subverse ascending
                //                                                        select new SubverseDetailsViewModel
                //                                                        {
                //                                                            Name = c.Name,
                //                                                            Title = c.Title,
                //                                                            Description = c.Description,
                //                                                            CreationDate = c.CreationDate,
                //                                                            Subscribers = c.SubscriberCount
                //                                                        };

                //var paginatedBlockedSubverses = new PaginatedList<SubverseDetailsViewModel>(blockedSubverses, page ?? 0, pageSize);

                //return View("BlockedSubverses", paginatedBlockedSubverses);

                break;
            }
        }