public void TestAttachment()
        {
            // Create an employer.

            var employer = CreateEmployer();

            // Create a member.

            var member1   = CreateMember();
            var candidate = _candidatesCommand.GetCandidate(member1.Id);

            _candidateResumesCommand.AddTestResume(candidate);

            var member2 = CreateOtherMember();

            candidate = _candidatesCommand.GetCandidate(member2.Id);
            _candidateResumesCommand.AddTestResume(candidate);

            // Send the email.

            var views         = _employerMemberViewsQuery.GetEmployerMemberViews(employer, new[] { member1, member2 });
            var templateEmail = new CandidateResumesEmail(employer, views);

            templateEmail.AddAttachments(new[] { GetResumeFile(views) });
            _emailsCommand.TrySend(templateEmail);

            var email = _emailServer.AssertEmailSent();

            email.AssertAttachment("Resumes.zip", "application/zip");
        }
        public void TestEmailContents()
        {
            // Create an employer.

            var employer = CreateEmployer();

            // Create a member.

            var member1   = CreateMember();
            var candidate = _candidatesCommand.GetCandidate(member1.Id);

            _candidateResumesCommand.AddTestResume(candidate);

            var member2 = CreateOtherMember();

            candidate = _candidatesCommand.GetCandidate(member2.Id);
            _candidateResumesCommand.AddTestResume(candidate);

            // Send the email.

            var views         = _employerMemberViewsQuery.GetEmployerMemberViews(employer, new[] { member1, member2 });
            var templateEmail = new CandidateResumesEmail(employer, views);

            _emailsCommand.TrySend(templateEmail);

            // Check.

            var email = _emailServer.AssertEmailSent();

            email.AssertAddresses(Return, Return, employer);
            email.AssertSubject(GetSubject());
            email.AssertHtmlViewChecks();
            email.AssertHtmlView(GetBody(templateEmail, employer, GetContent(templateEmail, new[] { member1, member2 })));
            AssertCompatibleAddresses(email);
        }
Exemple #3
0
        public ActionResult SendResumes(ResumeMimeType?mimeType, Guid[] candidateIds)
        {
            try
            {
                // Get the employer.

                var employer = CurrentEmployer;

                // Get the views to unlock the members.

                var professionalViews = _employerMemberViewsQuery.GetProfessionalViews(employer, candidateIds);
                _employerMemberViewsCommand.AccessMembers(ActivityContext.Channel.App, employer, professionalViews, MemberAccessReason.ResumeSent);

                // Get them again because unlocking will change what the employer can see.

                var views = _employerMemberViewsQuery.GetEmployerMemberViews(employer, candidateIds);

                EmployerEmail email;
                mimeType = GetMimeType(mimeType, candidateIds);
                switch (mimeType.Value)
                {
                case ResumeMimeType.Doc:
                    email = new CandidateResumeEmail(employer, views[candidateIds[0]]);
                    email.AddAttachments(new[] { GetResumeFile(views[candidateIds[0]]) });
                    break;

                default:
                    email = new CandidateResumesEmail(employer, views);
                    email.AddAttachments(new[] { GetResumeFile(views) });
                    break;
                }

                // Email it.

                _emailsCommand.TrySend(email);
            }
            catch (UserException ex)
            {
                ModelState.AddModelError(ex, new StandardErrorHandler());
            }

            return(Json(new JsonResponseModel()));
        }