예제 #1
0
        private void TestSortOrder(IEmployer employer, MemberSortOrder sortOrder, params Member[] members)
        {
            // Give the employer some credits to see the mmebers.

            _allocationsCommand.CreateAllocation(new Allocation {
                CreditId = _creditsQuery.GetCredit <ContactCredit>().Id, OwnerId = employer.Id
            });
            var blockList = _candidateBlockListsQuery.GetPermanentBlockList(employer);

            // Add members to folder.

            _candidateListsCommand.AddCandidatesToBlockList(employer, blockList, from m in members select m.Id);
            LogIn(employer);

            // Test ascending.

            Get(GetBlockListUrl(blockList.BlockListType, sortOrder, true));
            AssertSortOrders(SortOrders, sortOrder, true);
            AssertMembers(true, members);

            // Test descending, order should be reversed.

            Get(GetBlockListUrl(blockList.BlockListType, sortOrder, false));
            AssertSortOrders(SortOrders, sortOrder, false);
            AssertMembers(true, members.Reverse().ToArray());
        }
예제 #2
0
        protected static ReadOnlyUrl GetUrl(ReadOnlyUrl baseUrl, MemberSortOrder sortOrder)
        {
            var url = baseUrl.AsNonReadOnly();

            url.QueryString.Add("SortOrder", sortOrder.ToString());
            return(url);
        }
예제 #3
0
        private ReadOnlyUrl GetFolderUrl(Guid folderId, MemberSortOrder sortOrder, bool isAscending)
        {
            var url = GetFolderUrl(folderId).AsNonReadOnly();

            url.QueryString.Add("SortOrder", sortOrder.ToString());
            url.QueryString.Add("SortOrderDirection", isAscending ? "SortOrderIsAscending" : "SortOrderIsDescending");
            return(url);
        }
예제 #4
0
        private ReadOnlyUrl GetBlockListUrl(BlockListType blockListType, MemberSortOrder sortOrder, bool isAscending)
        {
            var url = GetBlockListUrl(blockListType).AsNonReadOnly();

            url.QueryString.Add("SortOrder", sortOrder.ToString());
            url.QueryString.Add("SortOrderDirection", isAscending ? "SortOrderIsAscending" : "SortOrderIsDescending");
            return(url);
        }
예제 #5
0
        private void TestSortOrder(MemberSearchCriteria criteria, MemberSortOrder sortOrder, params Member[] members)
        {
            // Test ascending.

            var model = Search(criteria, sortOrder);

            AssertMembers(model, true, members);
        }
예제 #6
0
        protected static ReadOnlyUrl Get(ReadOnlyUrl baseUrl, MemberSortOrder sortOrder, bool isAscending)
        {
            var url = baseUrl.AsNonReadOnly();

            url.QueryString.Add("SortOrder", sortOrder.ToString());
            url.QueryString.Add("SortOrderDirection", isAscending ? "SortOrderIsAscending" : "SortOrderIsDescending");
            return(url);
        }
예제 #7
0
 protected CandidatesResponseModel Search(MemberSearchCriteria criteria, MemberSortOrder sortOrder, int?page, int?items)
 {
     if (page == null && items == null)
     {
         return(Search(criteria, sortOrder));
     }
     return(Search(GetUrl(GetUrl(GetUrl(criteria), sortOrder), page, items)));
 }
예제 #8
0
        private static string GetText(MemberSortOrder sortOrder)
        {
            switch (sortOrder)
            {
            case MemberSortOrder.DateUpdated:
                return("Date updated");

            case MemberSortOrder.FirstName:
                return("First name");

            default:
                return(sortOrder.ToString());
            }
        }
예제 #9
0
        private IList <Guid> Filter(IEnumerable <Guid> memberIds, MemberSortOrder sortOrder, DateTime modifiedSince)
        {
            using (var dc = CreateContext().AsReadOnly())
            {
                switch (sortOrder)
                {
                case MemberSortOrder.DateUpdated:
                    return(FilterSortedByLastEditedTime(dc, new SplitList <Guid>(memberIds).ToString(), modifiedSince).ToList());

                default:
                    return(FilterByLastEditedTime(dc, new SplitList <Guid>(memberIds).ToString(), modifiedSince).ToList());
                }
            }
        }
예제 #10
0
        protected void AssertSortOrders(MemberSortOrder[] sortOrders, MemberSortOrder selectedValue, bool isAscending)
        {
            Assert.AreEqual(sortOrders.Length, _sortOrderDropDownList.Items.Count);
            for (var index = 0; index < sortOrders.Length; ++index)
            {
                var sortOrder = sortOrders[index];
                var item      = _sortOrderDropDownList.Items[index];

                Assert.AreEqual(GetText(sortOrder), item.Text);
                Assert.AreEqual(sortOrder.ToString(), item.Value);
                Assert.AreEqual(sortOrder == selectedValue, item.IsSelected);
            }

            if (isAscending)
            {
                Assert.IsTrue(_sortOrderIsAscendingRadioButton.IsChecked);
                Assert.IsFalse(_sortOrderIsDescendingRadioButton.IsChecked);
            }
            else
            {
                Assert.IsFalse(_sortOrderIsAscendingRadioButton.IsChecked);
                Assert.IsTrue(_sortOrderIsDescendingRadioButton.IsChecked);
            }
        }
예제 #11
0
        private void TestSortOrder(IUser employer, MemberSearchCriteria criteria, MemberSortOrder sortOrder, params Member[] members)
        {
            // Give the employer some credits to see the mmebers.

            _allocationsCommand.CreateAllocation(new Allocation {
                CreditId = _creditsQuery.GetCredit <ContactCredit>().Id, OwnerId = employer.Id
            });

            // Add members to folder.

            LogIn(employer);

            // Test ascending.

            Get(GetSearchUrl(criteria, sortOrder, true));
            AssertSortOrders(SortOrders, sortOrder, true);
            AssertMembers(true, members);

            // Test descending, order should be reversed.

            Get(GetSearchUrl(criteria, sortOrder, false));
            AssertSortOrders(SortOrders, sortOrder, false);
            AssertMembers(true, members.Reverse().ToArray());
        }
예제 #12
0
        public static string GetDisplayText(this MemberSortOrder sortOrder)
        {
            string text;

            return(Texts.TryGetValue(sortOrder, out text) ? text : null);
        }
예제 #13
0
 protected ReadOnlyUrl GetSearchUrl(MemberSearchCriteria criteria, MemberSortOrder sortOrder, bool isAscending)
 {
     return(Get(Get(GetSearchUrl(), criteria), sortOrder, isAscending));
 }
예제 #14
0
 protected ReadOnlyUrl GetSearchUrl(string keywords, MemberSortOrder sortOrder, bool isAscending)
 {
     return(Get(Get(GetSearchUrl(), keywords), sortOrder, isAscending));
 }
예제 #15
0
 IList <Guid> IFilterMembersRepository.Filter(IEnumerable <Guid> memberIds, MemberSortOrder sortOrder, DateTime?modifiedSince)
 {
     return(modifiedSince == null
         ? memberIds.ToList()
         : Filter(memberIds, sortOrder, modifiedSince.Value));
 }
예제 #16
0
 protected CandidatesResponseModel Search(MemberSearchCriteria criteria, MemberSortOrder sortOrder)
 {
     return(Search(GetUrl(GetUrl(criteria), sortOrder)));
 }