Beispiel #1
0
        private async void SendInterviewScheduledMailToApplicant(TblInterviewManagement tblInterviewManagement)
        {
            DateTime      dt            = (DateTime)tblInterviewManagement.InterviewDate;
            var           interview     = dbContext.TblInterviewManagement.Where(r => r.InterviewId == tblInterviewManagement.InterviewId).AsNoTracking().Include(r => r.Applicant).Include(r => r.ApplicantRequisition.Requisition.Designation).FirstOrDefault();
            EmailTemplate emailTemplate = new EmailTemplate();

            emailTemplate.ToEmailAddress = new string[] { dbContext.TblApplicants.Where(r => r.ApplicantId == tblInterviewManagement.ApplicantId).FirstOrDefault().EmailAddress };
            StringBuilder stringBuilder = new StringBuilder();
            TblInterviewEmployeeMapping tblInterviewEmployees = dbContext.TblInterviewEmployeeMapping.AsNoTracking().Where(r => r.InterviewId == tblInterviewManagement.InterviewId).Include(r => r.Employee).FirstOrDefault();

            stringBuilder.AppendLine("Dear " + interview.Applicant.Name + ",");
            stringBuilder.AppendLine("Your application for the '" + interview.ApplicantRequisition.Requisition.Designation.Designation + "' position stood out to us and we would like to invite you for an interview at our office[s] to get to know you a bit better.");
            stringBuilder.AppendLine("Your interview has been scheduled for '" + interview.InterviewDate + ", at " + tblInterviewManagement.Venue + "' and your Interview panel is '" + tblInterviewManagement.InterviewPanel + "'.");
            stringBuilder.AppendLine("Please call me at '1234567890' or email me at '" + emailTemplate.ToEmailAddress[0] + "', if you have any questions or need to reschedule.");
            stringBuilder.AppendLine();
            stringBuilder.AppendLine("Sincerely,");
            stringBuilder.AppendLine(tblInterviewEmployees.Employee.EmployeeName);
            emailTemplate.Body                 = stringBuilder.ToString();
            emailTemplate.Subject              = "Invitation to Interview";
            emailTemplate.InvitationStartTime  = dt;
            emailTemplate.InvitationEndTime    = dt.AddHours(1);
            emailTemplate.Location             = tblInterviewManagement.Venue;
            emailTemplate.EmailFromDisplayName = tblInterviewEmployees.Employee.EmployeeName;
            emailTemplate.UniqueIdentifier     = tblInterviewManagement.EmailGuid;
            await EmailHelper.SendMailWithCalendarInvite(emailTemplate);
        }
Beispiel #2
0
        private async void SendInterviewScheduledMailToPanel(TblInterviewManagement tblInterviewManagement, ICollection <TblInterviewEmployeeMapping> tblInterviewEmployeeMapping)
        {
            DateTime      dt            = (DateTime)tblInterviewManagement.InterviewDate;
            var           interview     = dbContext.TblInterviewManagement.Where(r => r.InterviewId == tblInterviewManagement.InterviewId).AsNoTracking().Include(r => r.Applicant).Include(r => r.ApplicantRequisition.Requisition.Designation).FirstOrDefault();
            EmailTemplate emailTemplate = new EmailTemplate();
            StringBuilder stringBuilder = new StringBuilder();
            TblInterviewEmployeeMapping tblInterviewEmployees = dbContext.TblInterviewEmployeeMapping.AsNoTracking().Where(r => r.InterviewId == tblInterviewManagement.InterviewId).Include(r => r.Employee).FirstOrDefault();

            stringBuilder.AppendLine("Hi " + tblInterviewEmployees.Employee.EmployeeName + ",");
            stringBuilder.AppendLine("Interview has been Raised for you on '" + tblInterviewManagement.InterviewDate + "' at '" + tblInterviewManagement.Venue + "'.");
            stringBuilder.AppendLine("Applicant Name - " + interview.Applicant.Name);
            stringBuilder.AppendLine("Comments about Candidate - '" + tblInterviewManagement.Comments + "'.");
            emailTemplate.Body                 = stringBuilder.ToString();
            emailTemplate.Subject              = "Interview has been Scheduled";
            emailTemplate.InvitationStartTime  = dt;
            emailTemplate.InvitationEndTime    = dt.AddHours(1);
            emailTemplate.Location             = tblInterviewManagement.Venue;
            emailTemplate.EmailFromDisplayName = tblInterviewEmployees.Employee.EmployeeName;
            List <string> emails = new List <string>();

            foreach (TblInterviewEmployeeMapping interviewer in tblInterviewEmployeeMapping)
            {
                emails.Add(dbContext.TblEmployees.AsNoTracking().Where(r => r.EmployeeId == interviewer.EmployeeId).FirstOrDefault().EmailId);
            }
            emailTemplate.ToEmailAddress   = emails.ToArray();
            emailTemplate.UniqueIdentifier = tblInterviewManagement.EmailGuid;
            await EmailHelper.SendMailWithCalendarInvite(emailTemplate);
        }
Beispiel #3
0
        public int UpdateInterview(TblInterviewManagement tblInterviewManagement)
        {
            if (CurrentContext.RoleName != RoleConstants.EmployeeRole && CurrentContext.RoleName != RoleConstants.ManagerRole)
            {
                var interviewers = dbContext.TblInterviewEmployeeMapping.Where(r => r.InterviewId == tblInterviewManagement.InterviewId).ToList();
                SendInterviewCancelledMailToPanel(tblInterviewManagement, interviewers);
                foreach (TblInterviewEmployeeMapping interviewer in interviewers)
                {
                    dbContext.TblInterviewEmployeeMapping.Remove(interviewer);
                }
                dbContext.SaveChanges();
                for (int i = 0; tblInterviewManagement.TblInterviewEmployeeMapping.Count > i; i++)
                {
                    TblInterviewEmployeeMapping tblInterviewEmployeeMapping = new TblInterviewEmployeeMapping();
                    tblInterviewEmployeeMapping.InterviewId = tblInterviewManagement.InterviewId;
                    tblInterviewEmployeeMapping.IsActive    = true;
                    tblInterviewEmployeeMapping.EmployeeId  = tblInterviewManagement.TblInterviewEmployeeMapping.ElementAt(i).EmployeeId;
                    dbContext.TblInterviewEmployeeMapping.Add(tblInterviewEmployeeMapping);
                }
                dbContext.SaveChanges();
                SendInterviewScheduledMailToPanel(tblInterviewManagement, tblInterviewManagement.TblInterviewEmployeeMapping);
            }
            dbContext.Entry(tblInterviewManagement).State = EntityState.Modified;
            tblInterviewManagement.ModifiedBy             = CurrentContext.EmployeeID;
            tblInterviewManagement.ModifiedDate           = DateTime.Now;
            string Round = tblInterviewManagement.Status;

            if (CurrentContext.RoleName != RoleConstants.EmployeeRole && CurrentContext.RoleName != RoleConstants.ManagerRole)
            {
                tblInterviewManagement.Status = InterviewStatus.InterviewScheduled;
            }
            dbContext.TblInterviewManagement.Update(tblInterviewManagement);
            dbContext.SaveChanges();
            dbContext.Entry(tblInterviewManagement).State = EntityState.Detached;
            //Requisition
            var requisition = dbContext.TblApplicantRequisition.Where(r => r.ApplicantRequisitionId == tblInterviewManagement.ApplicantRequisitionId).FirstOrDefault();

            if (CurrentContext.RoleName != RoleConstants.EmployeeRole && CurrentContext.RoleName != RoleConstants.ManagerRole)
            {
                requisition.Status = Round + "-" + tblInterviewManagement.Status;
            }
            else
            {
                requisition.Status = requisition.Status.Split("-")[0] + "-" + tblInterviewManagement.Status;
            }
            requisition.ModifiedBy             = CurrentContext.EmployeeID;
            requisition.ModifiedDate           = DateTime.Now;
            dbContext.Entry(requisition).State = EntityState.Modified;
            dbContext.TblApplicantRequisition.Update(requisition);
            dbContext.SaveChanges();
            dbContext.Entry(requisition).State = EntityState.Detached;
            SendFeedbackMailToRecruiter(tblInterviewManagement);
            return(1);
        }
        private async void SendInterviewCancellationMailToPanel(string EmailID, TblInterviewManagement tblInterviewManagement)
        {
            DateTime      dt            = (DateTime)tblInterviewManagement.InterviewDate;
            var           interview     = dbContext.TblInterviewManagement.Where(r => r.InterviewId == tblInterviewManagement.InterviewId).AsNoTracking().Include(r => r.Applicant).Include(r => r.ApplicantRequisition.Requisition.Designation).FirstOrDefault();
            EmailTemplate emailTemplate = new EmailTemplate();
            StringBuilder stringBuilder = new StringBuilder();
            TblInterviewEmployeeMapping tblInterviewEmployees = dbContext.TblInterviewEmployeeMapping.AsNoTracking().Where(r => r.InterviewId == tblInterviewManagement.InterviewId).Include(r => r.Employee).FirstOrDefault();

            stringBuilder.AppendLine("Hi " + tblInterviewEmployees.Employee.EmployeeName + ",");
            stringBuilder.AppendLine("Interview has been cancelled for the date '" + tblInterviewManagement.InterviewDate + "'.");
            emailTemplate.Body                 = stringBuilder.ToString();
            emailTemplate.Subject              = "Interview has been Cancelled";
            emailTemplate.InvitationStartTime  = dt;
            emailTemplate.InvitationEndTime    = dt.AddHours(1);
            emailTemplate.Location             = tblInterviewManagement.Venue;
            emailTemplate.EmailFromDisplayName = tblInterviewEmployees.Employee.EmployeeName;
            emailTemplate.ToEmailAddress       = new string[] { EmailID };
            await EmailHelper.SendMailWithoutCalendarInvite(emailTemplate);
        }
Beispiel #5
0
        public async void SendInterviewCancelledMailToPanel(TblInterviewManagement tblInterviewManagement, ICollection <TblInterviewEmployeeMapping> tblInterviewEmployeeMapping)
        {
            DateTime      dt            = (DateTime)tblInterviewManagement.InterviewDate;
            EmailTemplate emailTemplate = new EmailTemplate();
            StringBuilder stringBuilder = new StringBuilder();
            TblInterviewEmployeeMapping tblInterviewEmployees = dbContext.TblInterviewEmployeeMapping.AsNoTracking().Where(r => r.InterviewId == tblInterviewManagement.InterviewId).Include(r => r.Employee).FirstOrDefault();

            stringBuilder.AppendLine("Hi " + tblInterviewEmployees.Employee.EmployeeName + ",");
            stringBuilder.AppendLine("Interview has been Cancelled for you on '" + tblInterviewManagement.InterviewDate + "'.");
            stringBuilder.AppendLine("Applicant Name - " + tblInterviewManagement.Applicant.Name);
            emailTemplate.Body                 = stringBuilder.ToString();
            emailTemplate.Subject              = "Interview has been Cancelled";
            emailTemplate.InvitationStartTime  = dt;
            emailTemplate.EmailFromDisplayName = tblInterviewEmployees.Employee.EmployeeName;
            List <string> emails = new List <string>();

            foreach (TblInterviewEmployeeMapping interviewer in tblInterviewEmployeeMapping)
            {
                emails.Add(dbContext.TblEmployees.AsNoTracking().Where(r => r.EmployeeId == interviewer.EmployeeId).FirstOrDefault().EmailId);
            }
            emailTemplate.ToEmailAddress   = emails.ToArray();
            emailTemplate.UniqueIdentifier = tblInterviewManagement.EmailGuid;
            await EmailHelper.SendCancelCalendarInvite(emailTemplate);
        }