public void TestCreateResumeFile() { var candidateId = Guid.NewGuid(); _candidatesCommand.CreateCandidate(new Candidate { Id = candidateId }); var file = _filesCommand.CreateTestFile(FileType.Resume); var resumeFileReference = new ResumeFileReference { FileReferenceId = file.Id }; _candidateResumeFilesCommand.CreateResumeFile(candidateId, resumeFileReference); Assert.AreNotEqual(Guid.Empty, resumeFileReference.Id); Assert.AreNotEqual(DateTime.MinValue, resumeFileReference.UploadedTime); Assert.AreNotEqual(DateTime.MinValue, resumeFileReference.LastUsedTime); AssertResumeFile(resumeFileReference, _candidateResumeFilesQuery.GetResumeFile(candidateId, file.Id)); var resumeFileReferences = _candidateResumeFilesQuery.GetResumeFiles(candidateId); Assert.AreEqual(1, resumeFileReferences.Count); AssertResumeFile(resumeFileReference, resumeFileReferences[0]); AssertResumeFile(resumeFileReference, _candidateResumeFilesQuery.GetLastUsedResumeFile(candidateId)); }
public ActionResult DownloadResume(Guid fileReferenceId) { try { var member = CurrentMember; // Make sure the file is on of the member's resume files. var resumeFileReference = _candidateResumeFilesQuery.GetResumeFile(member.Id, fileReferenceId); if (resumeFileReference == null) { return(HttpNotFound()); } var fileReference = _filesQuery.GetFileReference(fileReferenceId); if (fileReference == null) { return(HttpNotFound()); } return(File(_filesQuery.OpenFile(fileReference), fileReference.MediaType, fileReference.FileName)); } catch (UserException ex) { ModelState.AddModelError(ex, new StandardErrorHandler()); } return(View("Error")); }
private ResumeFileReference CreateResumeFileReference(Guid candidateId, Guid fileReferenceId) { // Look for an existing one. var resumeFileReference = _candidateResumeFilesQuery.GetResumeFile(candidateId, fileReferenceId); if (resumeFileReference != null) { // Update it to reflect it has been used again. _candidateResumeFilesCommand.UpdateLastUsedTime(resumeFileReference); return(resumeFileReference); } // Create a new one. var now = DateTime.Now; resumeFileReference = new ResumeFileReference { FileReferenceId = fileReferenceId, LastUsedTime = now, UploadedTime = now }; _candidateResumeFilesCommand.CreateResumeFile(candidateId, resumeFileReference); return(resumeFileReference); }
private Guid GetResumeFileId(Guid memberId, Guid fileReferenceId, bool useForProfile) { // Make sure the id is valid. var fileReference = _filesQuery.GetFileReference(fileReferenceId); if (fileReference == null) { throw new NoResumeFileException(); } // Create or update the resume file reference. var resumeFileReference = _candidateResumeFilesQuery.GetResumeFile(memberId, fileReference.Id); if (resumeFileReference != null) { _candidateResumeFilesCommand.UpdateLastUsedTime(resumeFileReference); } else { resumeFileReference = new ResumeFileReference { FileReferenceId = fileReference.Id }; _candidateResumeFilesCommand.CreateResumeFile(memberId, resumeFileReference); } if (useForProfile) { CreateResume(memberId, fileReference); } return(fileReferenceId); }
private void AssertResume(ICandidate candidate, IResume resume, FileReference fileReference) { Assert.IsNotNull(resume); var resumeFile = _candidateResumeFilesQuery.GetResumeFile(candidate.Id, fileReference.Id); Assert.AreEqual(fileReference.Id, resumeFile.FileReferenceId); }
private void AssertCandidateResume(string emailAddress, string expectedFileName, Guid?fileReferenceId, Guid?parsedResumeId) { var memberId = _loginCredentialsQuery.GetUserId(emailAddress); var candidate = _candidatesQuery.GetCandidate(memberId.Value); var resume = _resumesQuery.GetResume(candidate.ResumeId.Value); // FileReference should always be created. Assert.IsNotNull(fileReferenceId); AssertFileReference(expectedFileName, fileReferenceId.Value); // Even if the resume was not parsed the file should still be saved against the member. var resumeFile1 = _candidateResumeFilesQuery.GetResumeFile(memberId.Value, fileReferenceId.Value); AssertResumeFileReference(fileReferenceId.Value, resumeFile1); if (parsedResumeId != null) { // Parsed with no errors so the resume should be associated with the file reference. var resumeFile2 = _candidateResumeFilesQuery.GetResumeFile(resume.Id); Assert.AreEqual(resumeFile1.Id, resumeFile2.Id); AssertResumeFileReference(fileReferenceId.Value, resumeFile2); } else { // There was a problem parsing the resume so the file references should be there, but the resume itself should not be associated with the file. Assert.IsNull(_candidateResumeFilesQuery.GetResumeFile(resume.Id)); } // Check all resume files for the member. var resumeFiles = _candidateResumeFilesQuery.GetResumeFiles(memberId.Value); Assert.AreEqual(1, resumeFiles.Count); Assert.AreEqual(resumeFile1.Id, resumeFiles[0].Id); AssertResumeFileReference(fileReferenceId.Value, resumeFiles[0]); }
protected void AssertNoResumeFile(Guid memberId, Guid resumeId) { Assert.IsNull(_candidateResumeFilesQuery.GetResumeFile(resumeId)); }
public void TestOverrideParse() { var member = CreateMember(0); var candidate = _candidatesQuery.GetCandidate(member.Id); _candidateResumesCommand.AddTestResume(candidate); // Confirm resume. candidate = _candidatesQuery.GetCandidate(member.Id); Assert.IsNotNull(candidate.ResumeId); var resume1 = _resumesQuery.GetResume(candidate.ResumeId.Value); Assert.IsNotNull(resume1); Assert.AreEqual(0, _candidateResumeFilesQuery.GetResumeFiles(member.Id).Count); Assert.IsNull(_candidateResumeFilesQuery.GetResumeFile(resume1.Id)); LogIn(member); // Upload and parse. var fileReferenceId1 = Upload(TestResume.Complete, "Resume.doc"); AssertJsonSuccess(Parse(fileReferenceId1)); // Confirm resume. candidate = _candidatesQuery.GetCandidate(member.Id); Assert.IsNotNull(candidate.ResumeId); var resume2 = _resumesQuery.GetResume(candidate.ResumeId.Value); Assert.IsNotNull(resume2); Assert.AreEqual(resume1.Id, resume2.Id); // Show that the resume is associated with the uploaded file. var references = _candidateResumeFilesQuery.GetResumeFiles(member.Id); Assert.AreEqual(1, references.Count); var resumeFileReference1 = references[0]; var resumeFileReference2 = _candidateResumeFilesQuery.GetResumeFile(member.Id, fileReferenceId1); var resumeFileReference3 = _candidateResumeFilesQuery.GetResumeFile(resume2.Id); Assert.AreEqual(fileReferenceId1, resumeFileReference1.FileReferenceId); Assert.AreEqual(fileReferenceId1, resumeFileReference2.FileReferenceId); Assert.AreEqual(fileReferenceId1, resumeFileReference3.FileReferenceId); Assert.AreEqual(resumeFileReference1.Id, resumeFileReference2.Id); Assert.AreEqual(resumeFileReference1.Id, resumeFileReference3.Id); // Upload and parse another resume. var fileReferenceId2 = Upload(TestResume.NoPhoneNumber, "Resume.doc"); AssertJsonSuccess(Parse(fileReferenceId2)); // Confirm resume. candidate = _candidatesQuery.GetCandidate(member.Id); Assert.IsNotNull(candidate.ResumeId); var resume3 = _resumesQuery.GetResume(candidate.ResumeId.Value); Assert.IsNotNull(resume3); Assert.AreEqual(resume1.Id, resume2.Id); Assert.AreEqual(resume1.Id, resume3.Id); // Show that the resume is associated with the new uploaded file. references = _candidateResumeFilesQuery.GetResumeFiles(member.Id); Assert.AreEqual(2, references.Count); resumeFileReference1 = (from r in references where r.FileReferenceId == fileReferenceId1 select r).Single(); resumeFileReference2 = (from r in references where r.FileReferenceId == fileReferenceId2 select r).Single(); resumeFileReference3 = _candidateResumeFilesQuery.GetResumeFile(member.Id, fileReferenceId1); var resumeFileReference4 = _candidateResumeFilesQuery.GetResumeFile(member.Id, fileReferenceId2); var resumeFileReference5 = _candidateResumeFilesQuery.GetResumeFile(resume3.Id); Assert.AreEqual(fileReferenceId1, resumeFileReference1.FileReferenceId); Assert.AreEqual(fileReferenceId2, resumeFileReference2.FileReferenceId); Assert.AreEqual(fileReferenceId1, resumeFileReference3.FileReferenceId); Assert.AreEqual(fileReferenceId2, resumeFileReference4.FileReferenceId); Assert.AreEqual(fileReferenceId2, resumeFileReference5.FileReferenceId); Assert.AreEqual(resumeFileReference1.Id, resumeFileReference3.Id); Assert.AreEqual(resumeFileReference2.Id, resumeFileReference4.Id); Assert.AreEqual(resumeFileReference2.Id, resumeFileReference5.Id); }