public List <JobApplicationAttachmentUploadItem> GetFiles(List <JobApplicationAttachmentUploadItem> attachments) { foreach (var item in attachments) { item.FileUrl = JobApplicationAttachmentUploadItem.FetchFromAmazonS3("private-amazon-s3-provider", item.AttachmentType, item.Id); } return(attachments); }
public bool UploadFiles(List <JobApplicationAttachmentUploadItem> attachments) { bool hasFailedUpload = false; if (attachments != null && attachments.Count > 0) { attachments.ForEach(c => JobApplicationAttachmentUploadItem.ProcessFileUpload(ref c)); hasFailedUpload = attachments.Where(c => c.Status != "Completed").Any(); } return(hasFailedUpload); }
public JsonResult DeleteResume(Guid resumeId) { ProfileResumeViewModel VM = new ProfileResumeViewModel(); try { JobApplicationAttachmentUploadItem deleteResumeFileItem = new JobApplicationAttachmentUploadItem(); var res = _blConnector.GetMemberByEmail(this.Email); if (res.Member != null && res.Member.ResumeFiles != null) { this.resumeList = JsonConvert.DeserializeObject <List <ProfileResumeJsonModel> >(res.Member.ResumeFiles); var temp = resumeList.Where(x => x.Id == resumeId).FirstOrDefault(); if (temp != null) { deleteResumeFileItem.Id = resumeId.ToString(); deleteResumeFileItem.AttachmentType = JobApplicationAttachmentType.ProfileResume; deleteResumeFileItem.FileName = temp.FileName; deleteResumeFileItem.PathToAttachment = temp.UploadPathToAttachment; if (_jobApplicationService.DeleteFile(deleteResumeFileItem)) { this.resumeList.Remove(temp); res.Member.ResumeFiles = JsonConvert.SerializeObject(this.resumeList); _blConnector.UpdateMember(res.Member); } } } } catch (Exception ex) { VM.DeleteError = true; Log.Write($"Unable to delete resume to the memeber profile. " + ex.Message, ConfigurationPolicy.ErrorLog); } VM.ResumeList = this.resumeList; VM.JsonData = JsonConvert.SerializeObject(VM); var fullTemplateName = this.templateNamePrefix + this.TemplateName; return(new JsonResult { Data = VM }); }
public Stream GetFileStreamFromAmazonS3(string srcLibName, int attachmentType, string id) { return(JobApplicationAttachmentUploadItem.GetFileStreamFromAmazonS3(srcLibName, attachmentType, id)); }
public bool DeleteFile(JobApplicationAttachmentUploadItem deletefile) { return(JobApplicationAttachmentUploadItem.DeleteFromAmazonS3("private-amazon-s3-provider", deletefile.AttachmentType, deletefile.PathToAttachment)); }
private CreateJobApplicationResponse CreateJobApplication( SocialMediaProcessedResponse result, JobDetailsModel jobDetails, ApplicantInfo applicantInfo, string overrideEmail) { // Gather Attachments Guid identifier = Guid.NewGuid(); JobApplicationAttachmentUploadItem uploadItem = new JobApplicationAttachmentUploadItem() { Id = identifier.ToString(), AttachmentType = JobApplicationAttachmentType.Resume, FileName = result.FileName, FileStream = result.FileStream, PathToAttachment = identifier.ToString() + "_" + result.FileName, Status = "Ready" }; // End code for fetch job details Log.Write("overrideEmail uploadItem object created", ConfigurationPolicy.ErrorLog); List <JobApplicationAttachmentUploadItem> attachments = new List <JobApplicationAttachmentUploadItem>(); attachments.Add(uploadItem); Log.Write("overrideEmail uploadItem attachment added", ConfigurationPolicy.ErrorLog); string resumeAttachmentPath = JobApplicationAttachmentUploadItem.GetAttachmentPath(attachments, JobApplicationAttachmentType.Resume); Log.Write("After resume GetAttachmentPath", ConfigurationPolicy.ErrorLog); string coverletterAttachmentPath = JobApplicationAttachmentUploadItem.GetAttachmentPath(attachments, JobApplicationAttachmentType.Coverletter); Log.Write("After cover letter GetAttachmentPath", ConfigurationPolicy.ErrorLog); string htmlEmailContent = this.GetEmailHtmlContent(this.EmailTemplateId); string htmlEmailSubject = this.GetEmailSubject(this.EmailTemplateId); string htmlAdvertiserEmailContent = this.GetEmailHtmlContent(this.AdvertiserEmailTemplateId); string htmlAdvertiserEmailSubject = this.GetEmailSubject(this.AdvertiserEmailTemplateId); Log.Write("After GetHtmlEmailContent", ConfigurationPolicy.ErrorLog); // Email notification settings List <dynamic> emailAttachments = new List <dynamic>(); foreach (var item in attachments) { dynamic emailAttachment = new ExpandoObject(); emailAttachment.FileStream = item.FileStream; emailAttachment.FileName = item.FileName; emailAttachments.Add(emailAttachment); } EmailNotificationSettings advertiserEmailNotificationSettings = (this.AdvertiserEmailTemplateId != null) ? _createAdvertiserEmailTemplate( new JobApplicationEmailTemplateModel() { FromFirstName = result.FirstName, FromLastName = result.LastName, FromEmail = overrideEmail, ToFirstName = jobDetails.ContactDetails.GetFirstName(), ToLastName = jobDetails.ContactDetails.GetLastName(), ToEmail = jobDetails.ApplicationEmail, Subject = SitefinityHelper.GetCurrentSiteEmailTemplateTitle(this.AdvertiserEmailTemplateId), HtmlContent = SitefinityHelper.GetCurrentSiteEmailTemplateHtmlContent(this.AdvertiserEmailTemplateId), Attachments = emailAttachments }) : null; EmailNotificationSettings emailNotificationSettings = (this.EmailTemplateId != null) ? _createApplicantEmailTemplate( new JobApplicationEmailTemplateModel() { FromFirstName = this.EmailTemplateSenderName, FromLastName = null, FromEmail = this.EmailTemplateSenderEmailAddress, ToFirstName = SitefinityHelper.GetUserFirstNameById(SitefinityHelper.GetUserByEmail(overrideEmail).Id), ToLastName = null, ToEmail = overrideEmail, Subject = SitefinityHelper.GetCurrentSiteEmailTemplateTitle(this.EmailTemplateId), HtmlContent = SitefinityHelper.GetCurrentSiteEmailTemplateHtmlContent(this.EmailTemplateId), Attachments = null }) : null; EmailNotificationSettings registrationNotificationsSettings = (applicantInfo.IsNewUser && this.RegistrationEmailTemplateId != null) ? _createRegistrationEmailTemplate( new JobApplicationEmailTemplateModel() { FromFirstName = this.EmailTemplateSenderName, FromLastName = null, FromEmail = this.EmailTemplateSenderEmailAddress, ToFirstName = applicantInfo.FirstName, ToLastName = null, ToEmail = applicantInfo.Email, Subject = SitefinityHelper.GetCurrentSiteEmailTemplateTitle(this.RegistrationEmailTemplateId), HtmlContent = SitefinityHelper.GetCurrentSiteEmailTemplateHtmlContent(this.RegistrationEmailTemplateId), Attachments = null }) : null; Log.Write("emailNotificationSettings after: ", ConfigurationPolicy.ErrorLog); Log.Write("BL response before: ", ConfigurationPolicy.ErrorLog); //Create Application var response = _blConnector.MemberCreateJobApplication( new JXTNext_MemberApplicationRequest { ApplyResourceID = result.JobId.Value, MemberID = 2, ResumePath = resumeAttachmentPath, CoverletterPath = coverletterAttachmentPath, EmailNotification = emailNotificationSettings, AdvertiserEmailNotification = advertiserEmailNotificationSettings, AdvertiserName = jobDetails.ContactDetails, CompanyName = jobDetails.CompanyName, UrlReferral = result.UrlReferral, RegistrationEmailNotification = registrationNotificationsSettings }, overrideEmail); Log.Write("BL response after: ", ConfigurationPolicy.ErrorLog); var createJobApplicationResponse = new CreateJobApplicationResponse { MemberApplicationResponse = response }; if (response.Success && response.ApplicationID.HasValue) { Log.Write("BL response in: ", ConfigurationPolicy.ErrorLog); var hasFailedUpload = _jobApplicationService.UploadFiles(attachments); Log.Write("file upload is : " + hasFailedUpload, ConfigurationPolicy.ErrorLog); if (hasFailedUpload) { createJobApplicationResponse.FilesUploaded = false; createJobApplicationResponse.Status = JobApplicationStatus.Technical_Issue; // Unable to attach files createJobApplicationResponse.Message = "Unable to attach files to application"; } else { createJobApplicationResponse.FilesUploaded = true; createJobApplicationResponse.Status = JobApplicationStatus.Applied_Successful; createJobApplicationResponse.Message = "Your application was successfully processed."; } } else { if (response.Errors.FirstOrDefault().ToLower().Contains("already exists")) { createJobApplicationResponse.Status = JobApplicationStatus.Already_Applied; createJobApplicationResponse.Message = "You have already applied to this job."; } else { createJobApplicationResponse.Status = JobApplicationStatus.Technical_Issue; createJobApplicationResponse.Message = response.Errors.FirstOrDefault(); } } return(createJobApplicationResponse); }