Пример #1
0
        private async void SendInterviewScheduledMailToApplicant(TblInterviewManagementStaffing tblInterviewManagement)
        {
            DateTime      dt            = (DateTime)tblInterviewManagement.InterviewDate;
            var           interview     = dbContext.TblInterviewManagementStaffing.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();
            TblInterviewEmployeeMappingStaffing tblInterviewEmployees = dbContext.TblInterviewEmployeeMappingStaffing.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);
        }
Пример #2
0
        public int UpdateInterview(TblInterviewManagementStaffing tblInterviewManagement)
        {
            if (CurrentContext.RoleName != RoleConstants.EmployeeRole && CurrentContext.RoleName != RoleConstants.ManagerRole)
            {
                var interviewers = dbContext.TblInterviewEmployeeMappingStaffing.Where(r => r.InterviewId == tblInterviewManagement.InterviewId).ToList();
                SendInterviewCancelledMailToPanel(tblInterviewManagement, interviewers);
                foreach (TblInterviewEmployeeMappingStaffing interviewer in interviewers)
                {
                    dbContext.TblInterviewEmployeeMappingStaffing.Remove(interviewer);
                }
                dbContext.SaveChanges();

                for (int i = 0; tblInterviewManagement.TblInterviewEmployeeMappingStaffing.Count > i; i++)
                {
                    TblInterviewEmployeeMappingStaffing tblInterviewEmployeeMapping = new TblInterviewEmployeeMappingStaffing();
                    tblInterviewEmployeeMapping.InterviewId = tblInterviewManagement.InterviewId;
                    tblInterviewEmployeeMapping.IsActive    = true;
                    tblInterviewEmployeeMapping.EmployeeId  = tblInterviewManagement.TblInterviewEmployeeMappingStaffing.ElementAt(i).EmployeeId;
                    dbContext.TblInterviewEmployeeMappingStaffing.Add(tblInterviewEmployeeMapping);
                }
                dbContext.SaveChanges();
                //SendInterviewScheduledMailToPanel(tblInterviewManagement);
            }

            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 && CurrentContext.RoleName != RoleConstants.StaffingLeadRole && CurrentContext.RoleName != RoleConstants.Client && CurrentContext.RoleName != RoleConstants.StaffingRole)
            {
                tblInterviewManagement.Status = InterviewStatus.InterviewScheduled;
            }
            dbContext.TblInterviewManagementStaffing.Update(tblInterviewManagement);
            dbContext.SaveChanges();
            dbContext.Entry(tblInterviewManagement).State = EntityState.Detached;



            //Requisition
            var requisition = dbContext.TblApplicantRequisitionStaffing.Where(r => r.ApplicantRequisitionId == tblInterviewManagement.ApplicantRequisitionId).FirstOrDefault();

            if (CurrentContext.RoleName != RoleConstants.EmployeeRole && CurrentContext.RoleName != RoleConstants.ManagerRole && CurrentContext.RoleName != RoleConstants.StaffingLeadRole && CurrentContext.RoleName != RoleConstants.Client)
            {
                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.TblApplicantRequisitionStaffing.Update(requisition);
            dbContext.SaveChanges();
            dbContext.Entry(requisition).State = EntityState.Detached;
            SendFeedbackMailToRecruiter(tblInterviewManagement);
            return(1);
        }
Пример #3
0
        private async void SendInterviewCancellationMailToPanel(string EmailID, TblInterviewManagementStaffing tblInterviewManagement)
        {
            DateTime      dt            = (DateTime)tblInterviewManagement.InterviewDate;
            var           interview     = dbContext.TblInterviewManagementStaffing.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();
            TblInterviewEmployeeMappingStaffing tblInterviewEmployees = dbContext.TblInterviewEmployeeMappingStaffing.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);
        }
Пример #4
0
        public async void SendInterviewCancelledMailToPanel(TblInterviewManagementStaffing tblInterviewManagement, ICollection <TblInterviewEmployeeMappingStaffing> tblInterviewEmployeeMapping)
        {
            DateTime      dt            = (DateTime)tblInterviewManagement.InterviewDate;
            EmailTemplate emailTemplate = new EmailTemplate();
            StringBuilder stringBuilder = new StringBuilder();
            TblInterviewEmployeeMappingStaffing tblInterviewEmployees = dbContext.TblInterviewEmployeeMappingStaffing.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 (TblInterviewEmployeeMappingStaffing 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);
        }