Beispiel #1
0
        // 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));
        }
Beispiel #3
0
        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));
            }
        }