示例#1
0
        private void TestAction(CreditInfo creditInfo)
        {
            const int count   = DailyLimit + 1;
            var       members = new Member[count];

            for (var index = 0; index < count; ++index)
            {
                members[index] = CreateMember(index);
            }

            var employer = creditInfo.CreateEmployer(members);

            _emailServer.ClearEmails();
            if (employer != null)
            {
                LogIn(employer);
            }

            // Perform the action up to the limit.

            var reason = GetReason();

            for (var index = 0; index < DailyLimit; ++index)
            {
                _employerMemberViewsCommand.AccessMember(_app, employer, _employerMemberViewsQuery.GetProfessionalView(employer, members[index]), reason);
            }

            // Perform the action to push it over the limit.

            PerformAction(employer, members[DailyLimit]);
        }
示例#2
0
        protected override MemberAccessReason?PerformAction(bool isApplicant, CreditInfo creditInfo, bool isLoggedIn, Employer employer, Member[] members)
        {
            var model = CallAction(members);

            if (isLoggedIn)
            {
                if (isApplicant || ((creditInfo.CanContact || creditInfo.HasUsedCredit) && !creditInfo.HasExpired))
                {
                    return(AssertModel(model, employer, members));
                }

                AssertJsonError(model, null, "You need " + members.Length + " credit" + (members.Length > 1 ? "s" : "") + " to perform this action but you have none available.");
                return(null);
            }

            AssertJsonError(model, null, "100", "The user is not logged in.");
            return(null);
        }