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