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); }
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); }
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); }
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); }