Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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
            });
        }
Ejemplo n.º 4
0
 public Stream GetFileStreamFromAmazonS3(string srcLibName, int attachmentType, string id)
 {
     return(JobApplicationAttachmentUploadItem.GetFileStreamFromAmazonS3(srcLibName, attachmentType, id));
 }
Ejemplo n.º 5
0
 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);
        }