public ActionResult ApplyWithUploadedResume(Guid jobAdId, Guid fileReferenceId, bool useForProfile, string coverLetterText) { try { var jobAd = GetJobAd(jobAdId, JobAdProcessing.ManagedExternally, JobAdProcessing.ManagedInternally); if (jobAd == null) { return(JsonNotFound("job ad")); } // Check the file exists. var fileReference = _filesQuery.GetFileReference(fileReferenceId); if (fileReference == null) { return(JsonNotFound("file")); } // Process the application. var applicationId = jobAd.Application.Questions.IsNullOrEmpty() ? _memberJobAdApplicationsCommand.SubmitApplicationWithResume(CurrentMember, jobAd, fileReferenceId, useForProfile, coverLetterText) : _memberJobAdApplicationsCommand.CreateApplicationWithResume(CurrentMember, jobAd, fileReferenceId, useForProfile, coverLetterText); return(Json(new JsonApplicationResponseModel { Id = applicationId })); } catch (UserException ex) { ModelState.AddModelError(ex, new StandardErrorHandler()); } return(Json(new JsonResponseModel())); }
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 string GetJobApplication(InternalApplication application, Member member) { var candidate = _candidatesQuery.GetCandidate(member.Id); var resume = application.ResumeId == null || candidate.ResumeId == null ? null : _resumesQuery.GetResume(candidate.ResumeId.Value); var file = application.ResumeFileId != null ? _filesQuery.GetFileReference(application.ResumeFileId.Value) : null; return(GetResponseXml(member, resume, file)); }
public void TestUploadPhoto() { var member = CreateMember(0); LogIn(member); Get(HttpStatusCode.NotFound, _photoUrl); // Upload. var filePath = FileSystem.GetAbsolutePath(@"Test\Data\Photos\ProfilePhoto.jpg", RuntimeEnvironment.GetSourceFolder()); var model = UploadPhoto(filePath); AssertJsonSuccess(model); Assert.IsNotNull(model.PhotoId); // Get the new photo. Get(_photoUrl); Assert.AreEqual("image/jpeg", Browser.ResponseHeaders["Content-Type"]); // Check the member. member = _membersQuery.GetMember(member.Id); Assert.IsNotNull(member.PhotoId); // Check the file. var fileReference = _filesQuery.GetFileReference(member.PhotoId.Value); Assert.AreEqual(Path.GetFileName(filePath), fileReference.FileName); Assert.AreEqual("image/jpeg", fileReference.MediaType); Assert.AreEqual(".jpg", fileReference.FileData.FileExtension); Assert.AreEqual(FileType.ProfilePhoto, fileReference.FileData.FileType); }
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 ResumeFileModel GetLastUsedResumeFile(IHasId <Guid> member) { if (member == null) { return(null); } var resumeFile = _candidateResumeFilesQuery.GetLastUsedResumeFile(member.Id); if (resumeFile == null) { return(null); } var fileReference = _filesQuery.GetFileReference(resumeFile.FileReferenceId); if (fileReference == null) { return(null); } return(new ResumeFileModel { FileReferenceId = resumeFile.FileReferenceId, FileName = fileReference.FileName, }); }
private ActionResult GetResumeFile(Guid fileId) { const string method = "Resume"; try { // Look for the file first. var file = _filesQuery.GetFileReference(fileId); if (file == null || file.FileData.FileType != FileType.Resume) { return(HttpNotFound()); } // Authenticate. _serviceAuthenticationManager.AuthenticateRequest(HttpContext, IntegratorPermissions.GetJobApplication); return(File(_filesQuery.OpenFile(file), file.MediaType, file.FileName)); } catch (Exception ex) { EventSource.Raise(Event.Error, method, "Cannot process the request.", ex, new StandardErrorHandler()); return(new TextResult("Error: " + ex.Message)); } }
public ActionResult Photo(Guid candidateId) { // Get the employer. var employer = CurrentEmployer; // Get the view to the member. var view = _employerMemberViewsQuery.GetProfessionalView(employer, candidateId); if (view.PhotoId == null) { return(HttpNotFound()); } // Return the file. var fileReference = _filesQuery.GetFileReference(view.PhotoId.Value); if (fileReference == null) { return(HttpNotFound()); } return(File(_filesQuery.OpenFile(fileReference), fileReference.MediaType)); }
public void TestSave() { Guid fileReferenceId; var filePath = FileSystem.GetAbsolutePath(@"Test\Data\Photos\ProfilePhoto.jpg", RuntimeEnvironment.GetSourceFolder()); using (var stream = File.Open(filePath, FileMode.Open)) { fileReferenceId = _employerLogosCommand.SaveLogo(new StreamFileContents(stream), filePath).Id; } var fileReference = _filesQuery.GetFileReference(fileReferenceId); Assert.AreEqual(Path.GetFileName(filePath), fileReference.FileName); Assert.AreEqual("image/jpeg", fileReference.MediaType); Assert.AreEqual(".jpg", fileReference.FileData.FileExtension); Assert.AreEqual(FileType.CompanyLogo, fileReference.FileData.FileType); }
private void AssertFile(string expectedFileName, string expectedMimeType, Guid fileReferenceId) { var fileReference = _filesQuery.GetFileReference(fileReferenceId); Assert.AreEqual(expectedFileName, fileReference.FileName); Assert.AreEqual(expectedMimeType, fileReference.MediaType); Assert.AreEqual(Path.GetExtension(expectedFileName), fileReference.FileData.FileExtension); Assert.AreEqual(FileType.Resume, fileReference.FileData.FileType); }
private void AssertAttachment(JsonFileModel model, MemberMessageAttachment attachment) { Assert.AreEqual(model.Id, attachment.Id); var fileReference = _filesQuery.GetFileReference(attachment.FileReferenceId); Assert.IsNotNull(fileReference); Assert.AreEqual(model.Name, fileReference.FileName); Assert.AreEqual(model.Size, fileReference.FileData.ContentLength); }
private void SendEmailWithResumeFile(InternalApplication application, ICommunicationUser member, JobAd jobAd) { var fileReference = _filesQuery.GetFileReference(application.ResumeFileId.Value); var stream = _filesQuery.OpenFile(fileReference); // Send the email. _emailsCommand.TrySend(new JobApplicationEmail(member, application, jobAd, stream, fileReference.FileName)); }
private void AssertFileReference(string expectedFileName, Guid fileReferenceId) { var expectedFileNameExtension = Path.GetExtension(expectedFileName); var file = _filesQuery.GetFileReference(fileReferenceId); Assert.IsNotNull(file); Assert.AreEqual(expectedFileName, file.FileName); Assert.AreEqual(expectedFileNameExtension, file.FileData.FileExtension); Assert.AreEqual(expectedFileNameExtension == ".doc" ? "application/msword" : "application/octet-stream", file.MediaType); Assert.AreEqual(FileType.Resume, file.FileData.FileType); }
private void SendResumeFile(InternalApplication application, ICommunicationUser member, JobAdEntry jobAd, IEnumerable <ApplicationAnswer> answers) { // Open the file and send it. var resumeFileReference = _filesQuery.GetFileReference(application.ResumeFileId.Value); using (var stream = _filesQuery.OpenFile(resumeFileReference)) { _sendJobG8Command.SendApplication(member, jobAd, resumeFileReference.FileName, new StreamFileContents(stream), application, answers); } }
private void AssertFile(Guid fileId, string filePath) { var file = _filesQuery.GetFileReference(fileId); var extension = Path.GetExtension(filePath); Assert.IsNotNull(file); Assert.AreEqual(Path.GetFileName(filePath), file.FileName); Assert.AreEqual(extension == ".jpg" ? "image/jpeg" : "image/png", file.MediaType); Assert.AreEqual(extension, file.FileData.FileExtension); Assert.AreEqual(FileType.CompanyLogo, file.FileData.FileType); }
private string GetLastUsedResumeFileName(Guid applicantId) { var resumeFile = _candidateResumeFilesQuery.GetLastUsedResumeFile(applicantId); if (resumeFile == null) { return(null); } var fileReference = _filesQuery.GetFileReference(resumeFile.FileReferenceId); return(fileReference == null ? null : fileReference.FileName); }
public ActionResult Photo(Guid id) { // Get the file reference. var file = _filesQuery.GetFileReference(id); if (file == null) { return(HttpNotFound()); } // Write the file out. return(File(_filesQuery.OpenFile(file), file.MediaType)); }
public ActionResult Logo(Guid fileId) { // Look for the file. // No checks are made etc to determine whether the current user uploaded the logo. var fileReference = _filesQuery.GetFileReference(fileId); if (fileReference == null || fileReference.FileData.FileType != FileType.CompanyLogo) { return(HttpNotFound()); } // Return the file. return(File(_filesQuery.OpenFile(fileReference), fileReference.MediaType)); }
public ActionResult Logo(Guid jobAdId) { var jobAd = _jobAdsQuery.GetJobAd <JobAd>(jobAdId); if (jobAd == null || jobAd.LogoId == null || !jobAd.Features.IsFlagSet(JobAdFeatures.Logo)) { return(HttpNotFound()); } var fileReference = _filesQuery.GetFileReference(jobAd.LogoId.Value); if (fileReference == null || fileReference.FileData.FileType != FileType.CompanyLogo) { return(HttpNotFound()); } // Return the file. return(File(_filesQuery.OpenFile(fileReference), fileReference.MediaType)); }
public ActionResult Photo(Guid friendId) { var friend = _membersQuery.GetMember(friendId); if (friend == null || friend.PhotoId == null) { return(HttpNotFound()); } var fileReference = _filesQuery.GetFileReference(friend.PhotoId.Value); if (fileReference == null || fileReference.FileData.FileType != FileType.ProfilePhoto) { return(HttpNotFound()); } // Return the file. return(File(_filesQuery.OpenFile(fileReference), fileReference.MediaType)); }
public ActionResult Parse(Guid fileReferenceId) { try { var member = CurrentMember; var candidate = _candidatesQuery.GetCandidate(member.Id); // Load the resume. var fileReference = _filesQuery.GetFileReference(fileReferenceId); if (fileReference == null) { return(JsonNotFound("file")); } // Parse it. var parsedResume = _parseResumesCommand.ParseResume(fileReference); if (parsedResume.Resume == null || parsedResume.Resume.IsEmpty) { throw new InvalidResumeException(); } // Save the parsed resume. var resume = parsedResume.Resume; _candidateResumesCommand.CreateResume(candidate, resume, fileReference); return(Json(new JsonProfileModel { Profile = CreateProfileModel(member, candidate, resume) })); } catch (UserException ex) { ModelState.AddModelError(ex, new StandardErrorHandler()); } return(Json(new JsonResponseModel())); }
public ActionResult Parse(Guid fileReferenceId) { Guid?parsedResumeId = null; try { // Load the resume. var fileReference = _filesQuery.GetFileReference(fileReferenceId); if (fileReference == null) { return(JsonNotFound("file")); } var stream = _filesQuery.OpenFile(fileReference); var parsedResume = _parseResumesCommand.ParseResume(stream, fileReference.FileName); // Save the parsed resume. _parsedResumesCommand.CreateParsedResume(parsedResume); parsedResumeId = parsedResume.Id; if (parsedResume.Resume == null || parsedResume.Resume.IsEmpty) { throw new InvalidResumeException(); } } catch (UserException ex) { ModelState.AddModelError(ex, new StandardErrorHandler()); } return(Json(new JsonParsedResumeModel { Id = parsedResumeId, })); }
private void UpdateMember(Member member, PersonalDetailsMemberModel memberModel) { var candidate = _candidatesQuery.GetCandidate(member.Id); member.FirstName = memberModel.FirstName; member.LastName = memberModel.LastName; member.EmailAddresses = new List <EmailAddress> { new EmailAddress { Address = memberModel.EmailAddress } }; // Address. member.Address = new Address { Location = _locationQuery.ResolveLocation(_locationQuery.GetCountry(memberModel.CountryId), memberModel.Location) }; // Phone number. if (member.PhoneNumbers == null || member.PhoneNumbers.Count == 0) { member.PhoneNumbers = new List <PhoneNumber> { new PhoneNumber { Number = memberModel.PhoneNumber, Type = memberModel.PhoneNumberType } }; } else { member.PhoneNumbers[0].Number = memberModel.PhoneNumber; member.PhoneNumbers[0].Type = memberModel.PhoneNumberType; } // Visibility. Start with the current and then ensure each is set as appropriate. var visibility = member.VisibilitySettings.Professional.EmploymentVisibility; visibility = visibility.SetFlag(ProfessionalVisibility.Resume, memberModel.Visibility.IsFlagSet(ProfessionalVisibility.Resume)); if (visibility.IsFlagSet(ProfessionalVisibility.Resume)) { visibility = visibility.SetFlag(ProfessionalVisibility.Name, memberModel.Visibility.IsFlagSet(ProfessionalVisibility.Name)); visibility = visibility.SetFlag(ProfessionalVisibility.PhoneNumbers, memberModel.Visibility.IsFlagSet(ProfessionalVisibility.PhoneNumbers)); visibility = visibility.SetFlag(ProfessionalVisibility.RecentEmployers, memberModel.Visibility.IsFlagSet(ProfessionalVisibility.RecentEmployers)); } else { visibility = visibility.ResetFlag(ProfessionalVisibility.Name); visibility = visibility.ResetFlag(ProfessionalVisibility.PhoneNumbers); visibility = visibility.ResetFlag(ProfessionalVisibility.RecentEmployers); } visibility = visibility.SetFlag(ProfessionalVisibility.Salary, memberModel.Visibility.IsFlagSet(ProfessionalVisibility.Salary)); member.VisibilitySettings.Professional.EmploymentVisibility = visibility; // Update the member. _memberAccountsCommand.UpdateMember(member); // Status. candidate.Status = memberModel.Status ?? Defaults.CandidateStatus; candidate.DesiredSalary = memberModel.SalaryLowerBound == null ? null : new Salary { LowerBound = memberModel.SalaryLowerBound, Currency = Currency.AUD, Rate = memberModel.SalaryRate }; // Update the candidate. _candidatesCommand.UpdateCandidate(candidate); // Save the uploaded resume for the member. if (Pageflow.FileReferenceId != null) { var fileReference = _filesQuery.GetFileReference(Pageflow.FileReferenceId.Value); if (fileReference != null) { if (Pageflow.ParsedResumeId != null && Pageflow.IsResumeValid) { var parsedResume = _resumesQuery.GetParsedResume(Pageflow.ParsedResumeId.Value); _candidateResumesCommand.CreateResume(candidate, parsedResume.Resume.Clone(), fileReference); } else { _candidateResumesCommand.CreateResumeFile(candidate, fileReference); } } } }