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