// GET: list of subverses user is subscribed to for sidebar public async Task <ActionResult> SubversesUserIsSubscribedTo(string userName) { if (userName != null) { var q = new QueryUserSubscriptions(userName); var result = await q.ExecuteAsync(); var subs = result[Domain.Models.DomainType.Subverse]; var selectList = subs.OrderBy(x => x).Select(x => new SelectListItem() { Value = x }).ToList(); return(PartialView("~/Views/Shared/Userprofile/_SidebarSubsUserIsSubscribedTo.cshtml", selectList )); //return PartialView("~/Views/Shared/Userprofile/_SidebarSubsUserIsSubscribedTo.cshtml", // _db.SubverseSubscriptions //.Where(x => x.UserName == userName) //.Select(s => new SelectListItem { Value = s.Subverse }) //.OrderBy(s => s.Value) //.ToList() //.AsEnumerable()); } return(new EmptyResult()); }
/// <summary> /// Represents the traditional menu /// </summary> /// <returns></returns> public async Task <ActionResult> LegacyMenu() { IEnumerable <string> subs = null; if (User.Identity.IsAuthenticated && UserData.HasSubscriptions(Domain.Models.DomainType.Subverse) && UserData.Preferences.UseSubscriptionsMenu) { var q = new QueryUserSubscriptions(User.Identity.Name); var results = await q.ExecuteAsync(); subs = results[Domain.Models.DomainType.Subverse]; subs = subs.OrderBy(x => x); } else { var q = new QueryDefaultSubverses(); var r = q.Execute(); subs = r.Select(x => x.Name).ToList(); } return(PartialView("_LegacyMenu", subs)); }
public async Task FrontPage_Lifecycle_Tests() { var userName = "******"; var subName = SUBVERSES.Unit; TestDataInitializer.CreateUser(userName); var user = TestHelper.SetPrincipal(userName); //Verify No Front / Blocked Sets var userSubQuery = new QueryUserSubscriptions(userName); var userSubResults = await userSubQuery.ExecuteAsync(); Assert.IsNotNull(userSubResults, "Old McDonald had a farm ee i ee i o. And on that farm he shot some guys. Badda boom badda bing bang boom."); Assert.AreEqual(0, userSubResults[DomainType.Set].Count(), "He is supposed to be Turkish. Some say his father was German. Nobody believed he was real."); var userSetQuery = new QueryUserSets(userName); var userSetResults = await userSetQuery.ExecuteAsync(); Assert.IsNotNull(userSetResults, "One cannot be betrayed if one has no people."); Assert.AreEqual(0, userSetResults.Count(), "A man can convince anyone he's somebody else, but never himself."); var currentSubscriberCount = 0; using (var db = new VoatDataContext()) { var count = db.Subverse.First(x => x.Name == subName).SubscriberCount; currentSubscriberCount = count.HasValue ? count.Value : 0; } //Sub a user to front var domainReference = new DomainReference(DomainType.Subverse, subName); var subCmd = new SubscribeCommand(domainReference, SubscriptionAction.Toggle).SetUserContext(user); var subResult = await subCmd.Execute(); VoatAssert.IsValid(subResult); //Verify Front is created userSubQuery = new QueryUserSubscriptions(userName, CachePolicy.None); userSubResults = await userSubQuery.ExecuteAsync(); Assert.IsNotNull(userSubResults, "What about it, pretzel man? What's your story?"); Assert.AreEqual(1, userSubResults[DomainType.Set].Count(), "First day on the job, you know what I learned? How to spot a murderer."); Assert.IsTrue(userSubResults[DomainType.Set].First() == new DomainReference(DomainType.Set, "Front", userName).FullName, "It was Keyser Soze, Agent Kujan. I mean the Devil himself. How do you shoot the Devil in the back? What if you miss?"); userSetQuery = new QueryUserSets(userName).SetUserContext(user); userSetResults = await userSetQuery.ExecuteAsync(); Assert.IsNotNull(userSetResults, "What the cops never figured out, and what I know now, was that these men would never break, never lie down, never bend over for anybody"); Assert.AreEqual(1, userSetResults.Count(), "Is it Friday already? "); var set = userSetResults.First(); Assert.AreEqual(SetType.Front, set.Type, "I got a whole new problem when I post bail."); Assert.AreEqual(1, set.SubscriberCount, "I got a whole new problem when I post bail."); //Ensure Subverse Subscriber Count Updated using (var db = new VoatDataContext()) { var tc = db.Subverse.First(x => x.Name == subName).SubscriberCount; var count = tc.HasValue ? tc.Value : 0; Assert.AreEqual(currentSubscriberCount + 1, count, ""); currentSubscriberCount = count; } //verify FRONT set has sub using (var repo = new Voat.Data.Repository()) { var setList = await repo.GetSetListDescription(SetType.Front.ToString(), userName); Assert.IsTrue(setList.Any(x => x.Name == subName)); } //Unsubscribe subCmd = new SubscribeCommand(domainReference, SubscriptionAction.Toggle).SetUserContext(user); subResult = await subCmd.Execute(); VoatAssert.IsValid(subResult); //Ensure Subverse Subscriber Count Updated using (var db = new VoatDataContext()) { var count = db.Subverse.First(x => x.Name == subName).SubscriberCount; Assert.AreEqual(currentSubscriberCount - 1, count.HasValue ? count.Value : 0, ""); } //verify FRONT set has not sub using (var repo = new Voat.Data.Repository()) { var setList = await repo.GetSetListDescription(SetType.Front.ToString(), userName); Assert.IsFalse(setList.Any(x => x.Name == subName)); } }