Esempio n. 1
0
 /// <summary>
 /// This function returns the contact for a given Id
 /// </summary> 
 /// <param name="contactId"></param>
 /// <returns></returns>
 public Candidate GetCandidate(int contactId)
 {
     var context = new dbDataContext();
     // Set up the query to retrieve contact
     var contact = context.tbl_Candidates.FirstOrDefault(t => t.CandidateId == contactId);
     if (contact == null) return null;
     var foundContact = new Candidate
     {
         CandidateId = contact.CandidateId,
         ClientId = contact.ClientId,
         Forename = contact.Forename,
         Surname = contact.Surname,
         Title = contact.Title,
         JobTitle = contact.JobTitle,
         Employer = contact.Employer,
         Addresses = new Addresses().GetContactAddresses(contact.CandidateId),
         Email = contact.Email,
         Password = contact.Password,
         WorkPhone = contact.WorkPhone,
         HomePhone = contact.HomePhone,
         Rating = contact.Rating,
         Mobile = contact.Mobile,
         Website = contact.Website,
         VacancyType = contact.VacancyType,
         Hours = contact.Hours,
         Newsletter = contact.NewsLetter,
         MinSalary = contact.MinSalary,
         MaxSalary = contact.MaxSalary,
         PersonalSummary = contact.PersonalSummary,
         Facebook = contact.Facebook,
         Twitter = contact.Twitter,
         Google = contact.Google,
         LinkedIn = contact.LinkedIn,
         SourceOther = contact.SourceOther,
         Source = new Sources().GetSource(contact.SourceId),
         DoNotEmail = contact.DoNotEmail,
         Deleted = contact.Deleted,
         CreatedDate = contact.CreatedDate,
         CreatedBy = contact.CreatedBy,
         LastUpdatedDate = contact.LastUpdatedDate,
         LastUpdatedBy = contact.LastUpdatedBy,
         RefId = contact.RefId,
         SalaryText = GetSalaryText(contact.MinSalary, contact.MaxSalary),
         SectorIds = string.Join(",", (from sec in context.tbl_CandidateSectors where sec.CandidateId == contactId select sec.SectorId).ToArray()),
         Location = new Locations().GetLocation(contact.LocationId),
         Sectors = new Sectors().GetSectorsForContact(contact.CandidateId).ToList()
     };
     return foundContact;
 }
Esempio n. 2
0
        /// <summary>
        /// Do not replace the body if the object is null
        /// </summary>
        /// <param name="rawBody"></param>
        /// <param name="contactId"></param>
        /// <param name="jobId"></param>
        /// <param name="userId"></param>
        /// <param name="consultantid"></param>
        /// <param name="clientId"></param>
        /// <param name="candidate"></param>
        /// <param name="job"></param>
        /// <param name="cUser"></param>
        /// <param name="consultant"></param>
        /// <param name="client"></param>
        /// <param name="intRequestId"></param>
        /// <param name="timeSlotId"></param>
        /// <returns></returns>
        public string GetOriginalBodyForPreview(string rawBody, int contactId = 0, int jobId = 0, int userId = 0, int consultantid = 0, int clientId = 0,
        Candidate candidate = null, Job job = null, User cUser = null, User consultant = null, Client client = null, int intRequestId = 0, int timeSlotId = 0)
        {
            // get contact by id  
            if (contactId > 0)
                candidate = new Contacts().GetCandidate(contactId);
            //retrieve objects if null and have an id passed
            if (job == null && jobId > 0)
                job = new Jobs().GetJob(jobId);
            if (cUser == null && userId > 0)
                cUser = new Users().GetUser(userId);
            if (consultant == null && consultantid > 0)
                consultant = new Users().GetUser(consultantid);
            if (client == null && clientId > 0)
                client = new Clients().GetClient(clientId);

            InterviewRequest intRequest = null;
            if (intRequestId > 0)
            {
                intRequest = new Interviews().GetInterviewRequest(intRequestId);
            }

            TimeSlot timeSlot = null;
            if (timeSlotId > 0)
            {
                timeSlot = new Interviews().GetTimeSlot(timeSlotId);
            }

            //Contact
            if (candidate != null)
            {
                var pwdlink = "http://www.resonatesearch.co.uk/reset-password.aspx?token=" + candidate.RefId;
                rawBody = rawBody.Replace("#ContactTitle#", candidate.Title);
                rawBody = rawBody.Replace("#ContactForename#", candidate.Forename);
                rawBody = rawBody.Replace("#ContactSurname#", candidate.Surname);
                rawBody = rawBody.Replace("#ContactJobTitle#", candidate.JobTitle);
                rawBody = rawBody.Replace("#ContactEmployer#", candidate.Employer);
                rawBody = rawBody.Replace("#ContactEmail#", candidate.Email);
                rawBody = rawBody.Replace("#ContactPassword#", candidate.Password);
                if (string.IsNullOrEmpty(candidate.Password))
                    rawBody = rawBody.Replace("#PasswordResetLink#", "If you wish to create a password for your account on  Resonate Search please click link below:<br/><a href='" + pwdlink + "'>" + pwdlink + "</a><br/>");
                else
                    rawBody = rawBody.Replace("#PasswordResetLink#", "");
            }


            //Job
            if (job != null)
            {
                rawBody = rawBody.Replace("#VacancyTitle#", job.JobTitle);
                rawBody = rawBody.Replace("#VacancyRef#", job.Ref);
                rawBody = rawBody.Replace("#VacancyBenefits#", job.Benefits);
                rawBody = rawBody.Replace("#VacancyOverview#", job.Overview);
            }


            // User
            if (cUser != null)
            {
                rawBody = rawBody.Replace("#UserForename#", cUser.Forename);
                rawBody = rawBody.Replace("#UserSurname#", cUser.Surname);
                rawBody = rawBody.Replace("#UserEmail#", cUser.Email);
                rawBody = rawBody.Replace("#UserMobile#", cUser.Mobile);
                rawBody = rawBody.Replace("#UserPassword#", cUser.Password);
                rawBody = rawBody.Replace("#UserJobTitle#", cUser.JobTitle);
            }

            // Consultant
            if (consultant != null)
            {
                rawBody = rawBody.Replace("#ConsultantForename#", consultant.Forename);
                rawBody = rawBody.Replace("#ConsultantSurname#", consultant.Surname);
                rawBody = rawBody.Replace("#ConsultantEmail#", consultant.Email);
                rawBody = rawBody.Replace("#ConsultantMobile#", consultant.Mobile);
                rawBody = rawBody.Replace("#ConsultantJobTitle#", consultant.Password);
            }


            // Client
            if (client != null)
            {
                rawBody = rawBody.Replace("#ClientName#", client.ClientName);
                rawBody = rawBody.Replace("#ClientEmail#", client.Email);
            }


            // Interview Request  
            if (intRequest != null)
            {
                var requestLink = "http://www.resonatesearch.co.uk/interview/interview-request.aspx?ref=" + intRequest.RefId;
                rawBody = rawBody.Replace("#InterviewRequestLink#", requestLink);
            }

            // Time Slot
            if (timeSlot != null)
            {
                rawBody = rawBody.Replace("#InterviewDate#", "Interview Date: <b>" + Convert.ToDateTime(timeSlot.SlotDate).ToString("dd MMM, yyyy") + " - " + timeSlot.SlotTime + "</b>");
                rawBody = rawBody.Replace("#Duration#", "Duration:<b> " + GetDurationText(timeSlot.Duration) + "</b>");
                rawBody = rawBody.Replace("#InterviewLocation#", timeSlot.Location != null ? GetInterviewLocation(timeSlot) : "");
                rawBody = rawBody.Replace("#Interviewers#", timeSlot.Interviewers != null && timeSlot.Interviewers.Any() ? GetInterviewers(timeSlot) : "");
            }

            return rawBody;
        }
 private int AddContact(tbl_JobApplicationByEmail application)
 {
     var contact = new Candidate
     {
         CandidateId = -1, 
         ClientUserId = 0,
         Forename = application.Forename,
         Surname = application.Surname,
         ClientId = 0,
         JobTitle = application.ApplicantJobtitle,
         Employer = application.ApplicantEmployer,
         Email = application.Email,
         Mobile = application.Phone,
         Source = new Source { SourceId = 4 },
         SourceOther = application.JobBoard,
         PersonalSummary = application.Comments,
         LastUpdatedBy = LoginUser.GetLoggedInUserId()
     };
     //save
     return new Contacts().AddUpdateCandidate(contact);
 }
Esempio n. 4
0
        /// <summary>
        /// This function add/update the contact
        /// </summary>
        /// <param name="candidateDetails"></param>
        /// <returns></returns>
        // ReSharper disable once FunctionComplexityOverflow
        public int AddUpdateCandidate(Candidate candidateDetails)
        {
            var context = new dbDataContext();
            var isAdd = false;
            // Create or retrieve the contact
            var candidate = context.tbl_Candidates.FirstOrDefault(t => t.CandidateId == candidateDetails.CandidateId) ?? new tbl_Candidate();
            // Assign contact values 
            candidate.ClientId = candidateDetails.ClientId;
            candidate.Title = candidateDetails.Title;
            candidate.Forename = candidateDetails.Forename;
            candidate.Surname = candidateDetails.Surname;
            candidate.JobTitle = candidateDetails.JobTitle;
            candidate.Employer = candidateDetails.Employer;
            candidate.LocationId = candidateDetails.Location == null
              ? 0
              : candidateDetails.Location.LocationId;
            candidate.Email = candidateDetails.Email;
            //contact.Password = contactDetails.Password;
            candidate.Mobile = candidateDetails.Mobile;
            candidate.WorkPhone = candidateDetails.WorkPhone;
            candidate.HomePhone = candidateDetails.HomePhone;
            candidate.Website = candidateDetails.Website;
            candidate.MinSalary = candidateDetails.MinSalary;
            candidate.MaxSalary = candidateDetails.MaxSalary;
            candidate.Rating = candidateDetails.Rating;
            candidate.VacancyType = candidateDetails.VacancyType;
            candidate.Hours = candidateDetails.Hours;
            candidate.PersonalSummary = candidateDetails.PersonalSummary;
            candidate.LinkedIn = candidateDetails.LinkedIn;
            candidate.Facebook = candidateDetails.Facebook;
            candidate.Twitter = candidateDetails.Twitter;
            candidate.Google = candidateDetails.Google;
            candidate.SourceId = candidateDetails.Source != null ? candidateDetails.Source.SourceId : 0;
            candidate.SourceOther = candidateDetails.SourceOther;
            candidate.NewsLetter = candidateDetails.Newsletter;
            candidate.DoNotEmail = candidateDetails.DoNotEmail;
            candidate.LastUpdatedDate = DateTime.Now;
            candidate.LastUpdatedBy = candidateDetails.LastUpdatedBy;

            try
            {
                // Add/Update candidate
                if (candidate.CandidateId <= 0)
                {
                    isAdd = true;
                    candidate.Password = null;
                    candidate.RefId = Guid.NewGuid().ToString();
                    candidate.CreatedDate = DateTime.Now;
                    candidate.CreatedBy = candidateDetails.LastUpdatedBy;
                    context.tbl_Candidates.InsertOnSubmit(candidate);
                }
                context.SubmitChanges();
            }
            catch (Exception)
            {
                return -1;
            }
            if (candidate.CandidateId > 0)
            {
                // save addresses
                if (candidateDetails.Addresses != null)
                {
                    foreach (var address in candidateDetails.Addresses)
                    {
                        address.RefId = candidate.CandidateId;
                        address.RefType = "Contact";
                        new Addresses().AddAddress(address);
                    }
                }


                // Contact Sectors
                context.tbl_CandidateSectors.DeleteAllOnSubmit(context.tbl_CandidateSectors.Where(t => t.CandidateId == candidate.CandidateId));
                context.SubmitChanges();
                if (candidateDetails.SectorIds != null)
                {
                    foreach (var secId in candidateDetails.SectorIds.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        context.tbl_CandidateSectors.InsertOnSubmit(new tbl_CandidateSector
                        {
                            CandidateId = candidate.CandidateId,
                            SectorId = int.Parse(secId)
                        });
                    }
                    context.SubmitChanges();
                }

                // Contact Qualifications
                if (candidateDetails.QualificationIds != null)
                {
                    var quals = candidateDetails.QualificationIds.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(qualId => new Qualification
                    {
                        QualificationId = int.Parse(qualId)
                    }).ToList();
                    new Qualifications().AddQualificationsForContact(candidate.CandidateId, quals);
                }

                // Contact Skills
                if (candidateDetails.SkillIds != null)
                {
                    var skills = candidateDetails.SkillIds.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(skillId => new Skill
                    {
                        SkillId = int.Parse(skillId)
                    }).ToList();
                    new Skills().AddSkillsForContact(candidate.CandidateId, skills);
                }

                //Add History
                new Histories().AddHistory(new History
                {
                    RefId = candidate.CandidateId,
                    RefType = "Candidate",
                    ClientUserId = candidateDetails.LastUpdatedBy,
                    TypeId = isAdd ? 1 : 2,
                    SubRefType = candidateDetails.ClientUserId > 0 ? "ClientUser" : "Candidate",
                    SubRefId = candidateDetails.ClientUserId > 0 ? candidateDetails.ClientUserId : candidate.CandidateId
                });

                if (isAdd)
                {
                    // TODO - Send Notification Email 
                }

                return candidate.CandidateId;
            }
            return -1;
        }
Esempio n. 5
0
 /// <summary>
 /// Get contact last updated date
 /// </summary>
 /// <param name="candidateId"></param>
 /// <param name="candidate"></param>
 /// <returns></returns>
 public ActionDate GetContactLastUpdatedDate(int candidateId, Candidate candidate = null)
 {
     ActionDate action;
     var dbContext = new dbDataContext();
     if (candidate == null)
     {
         var tblCandidate = dbContext.tbl_Candidates.FirstOrDefault(t => t.CandidateId == candidateId);
         if (tblCandidate != null)
         {
             action = new ActionDate
             {
                 Date = tblCandidate.LastUpdatedDate.ToString("dd/MM/yyyy"),
                 UserId = tblCandidate.LastUpdatedBy
             };
         }
         else
             return null;
     }
     else
     {
         action = new ActionDate
         {
             Date = candidate.LastUpdatedDate.ToString("dd/MM/yyyy"),
             UserId = candidate.LastUpdatedBy
         };
     }
     var user = dbContext.tbl_Users.FirstOrDefault(t => t.UserId == action.UserId);
     if (user != null)
         action.Username = user.Forename + " " + user.Surname;
     return action;
 }