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)); }
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; } }
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)); } }
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; } }
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; } }