Example #1
0
        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);
        }