private MemberAccess AccessMember(ChannelApp app, IEmployer employer, ProfessionalView view, MemberAccessReason reason) { // An anonymous employer means insufficient credits. if (employer == null) { throw new InsufficientCreditsException { Available = 0, Required = 1 } } ; // Make sure the details are visible. CheckVisibility(view, reason); // Check against limits. CheckAccessLimit(employer.Id, view.Id, reason); // Exercise the credit. var exercisedCreditId = _employerCreditsCommand.ExerciseContactCredit(employer, view); // Record the access. return(CreateMemberAccess(app, employer.Id, view.Id, reason, exercisedCreditId)); }
public override Employer CreateEmployer(Member[] members) { var employer = CreateEmployer(10, DateTime.Now.AddMonths(6).Date); foreach (var member in members) { _employerCreditsCommand.ExerciseContactCredit(employer, _employerMemberViewsQuery.GetProfessionalView(employer, member)); } if (HasExpired) { ExpireCredits(); } return(employer); }