public void TestNoCreditUsedHasBeenAccessed() { // For old candidates we sometimes did not record the credit usage against unlimited allocations. // Should still be able to contact without a credit if they have been accessed. var employer = CreateEmployer(true, 10, false, null); if (employer == null) { return; } var member = CreateMember(1); AssertView(employer, member, CanContactStatus.YesWithCredit, true, ProfessionalContactDegree.NotContacted); // Record an access but don't use a credit. var access = new MemberAccess { Reason = MemberAccessReason.PhoneNumberViewed, EmployerId = employer.Id, MemberId = member.Id, ExercisedCreditId = null, }; access.Prepare(); access.Validate(); _employerViewsRepository.CreateMemberAccess(access); AssertView(employer, member, CanContactStatus.YesWithoutCredit, true, ProfessionalContactDegree.Contacted); }
private MemberAccess CreateMemberAccess(ChannelApp app, Guid employerId, Guid memberId, MemberAccessReason reason, Guid?exercisedCreditId) { var access = new MemberAccess { Reason = reason, EmployerId = employerId, MemberId = memberId, ExercisedCreditId = exercisedCreditId, ChannelId = app.ChannelId, AppId = app.Id, }; access.Prepare(); access.Validate(); _repository.CreateMemberAccess(access); return(access); }
private IList <MemberAccess> CreateMemberAccesses(ChannelApp app, Guid employerId, IEnumerable <Guid> memberIds, MemberAccessReason reason, IDictionary <Guid, Guid?> exercisedCreditIds) { var accesses = new List <MemberAccess>(); foreach (var memberId in memberIds) { var access = new MemberAccess { Reason = reason, EmployerId = employerId, MemberId = memberId, ExercisedCreditId = exercisedCreditIds[memberId], ChannelId = app.ChannelId, AppId = app.Id, }; access.Prepare(); access.Validate(); accesses.Add(access); } _repository.CreateMemberAccesses(accesses); return(accesses); }