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); }
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); }
public int UpdateStatusOnStaffingFeedback(TblInterviewManagementStaffing tblInterviewManagement) { var entity = dbContext.TblInterviewManagementStaffing.Where(r => r.InterviewId == tblInterviewManagement.InterviewId).FirstOrDefault(); entity.RecruitersFeedBack = tblInterviewManagement.RecruitersFeedBack; dbContext.Entry(tblInterviewManagement).State = EntityState.Modified; dbContext.TblInterviewManagementStaffing.Update(entity); int result = dbContext.SaveChanges(); dbContext.Entry(tblInterviewManagement).State = EntityState.Detached; return(result); }
private async void SendInterviewCancelledMailToRecruiter(TblInterviewManagementStaffing tblInterviewManagement) { EmailTemplate emailTemplate = new EmailTemplate(); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("Hi,"); stringBuilder.AppendLine("I will be busy on '" + tblInterviewManagement.InterviewDate + "', so you can reschedule or cancel interview for me."); emailTemplate.Body = stringBuilder.ToString(); emailTemplate.Subject = "Interview Reschedule or cancel"; emailTemplate.EmailFromDisplayName = dbContext.TblEmployees.AsNoTracking().Where(r => r.EmployeeId == CurrentContext.EmployeeID).FirstOrDefault().EmployeeName; emailTemplate.ToEmailAddress = dbContext.TblEmployees.AsNoTracking().Where(r => r.EmployeeId == tblInterviewManagement.CreatedBy).AsNoTracking().ToList().Select(r => r.EmailId).ToArray(); await EmailHelper.SendMailWithoutCalendarInvite(emailTemplate); }
//private async void SendInterviewScheduledMailToPanel(TblInterviewManagementStaffing tblInterviewManagement) //{ // try // { // long reid = tblInterviewManagement.ApplicantRequisition.RequisitionId; // var contactdetails = dbContext.TblRequisitionClientContactMappingStaffing.Where(r => r.RequisitionId == reid).Include(r => r.Contact); // 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 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 (TblRequisitionClientContactMappingStaffing clientsContactDetails in contactdetails) // { // emails.Add(clientsContactDetails.Contact.ContactPersonEmailId); // } // emailTemplate.ToEmailAddress = emails.ToArray(); // emailTemplate.UniqueIdentifier = tblInterviewManagement.EmailGuid; // await EmailHelper.SendMailWithCalendarInvite(emailTemplate); // } // catch // { // } //} private async void SendFeedbackMailToRecruiter(TblInterviewManagementStaffing tblInterviewManagement) { EmailTemplate emailTemplate = new EmailTemplate(); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("Interviewer " + tblInterviewManagement.Applicant.Name); stringBuilder.AppendLine("Applicant Name " + tblInterviewManagement.Applicant.Name); stringBuilder.AppendLine("Feedback on Candidate: '" + tblInterviewManagement.FeedBack + "'."); emailTemplate.Body = stringBuilder.ToString(); emailTemplate.Subject = "Interviewer feedback"; emailTemplate.EmailFromDisplayName = dbContext.TblEmployees.AsNoTracking().Where(r => r.EmployeeId == CurrentContext.EmployeeID).FirstOrDefault().EmployeeName; emailTemplate.ToEmailAddress = dbContext.TblEmployees.AsNoTracking().Where(r => r.EmployeeId == tblInterviewManagement.CreatedBy).AsNoTracking().ToList().Select(r => r.EmailId).ToArray(); await EmailHelper.SendMailWithoutCalendarInvite(emailTemplate); }
public int SaveInterviewDetails(TblInterviewManagementStaffing tblInterviewManagement) { dbContext.Entry(tblInterviewManagement).State = EntityState.Added; tblInterviewManagement.CreatedBy = CurrentContext.EmployeeID; tblInterviewManagement.CreatedDate = DateTime.Now; tblInterviewManagement.IsCompleted = false; tblInterviewManagement.EmailGuid = new Guid(); tblInterviewManagement.IsClient = true; if (string.IsNullOrEmpty(tblInterviewManagement.InterviewPanel)) { tblInterviewManagement.InterviewPanel = "Client"; } string Round = tblInterviewManagement.Status; tblInterviewManagement.Status = InterviewStatus.InterviewScheduled; dbContext.TblInterviewManagementStaffing.Add(tblInterviewManagement); dbContext.SaveChanges(); dbContext.Entry(tblInterviewManagement).State = EntityState.Detached; if (tblInterviewManagement.InterviewPanel == "Client") { tblInterviewManagement.TblInterviewEmployeeMappingStaffing = new List <TblInterviewEmployeeMappingStaffing>(); tblInterviewManagement.TblInterviewEmployeeMappingStaffing.Add(new TblInterviewEmployeeMappingStaffing() { EmployeeId = 9, InterviewId = tblInterviewManagement.InterviewId, IsActive = true, }); } for (int i = 0; tblInterviewManagement.TblInterviewEmployeeMappingStaffing.Count > i; i++) { tblInterviewManagement.TblInterviewEmployeeMappingStaffing.ElementAt(i).InterviewId = tblInterviewManagement.InterviewId; tblInterviewManagement.TblInterviewEmployeeMappingStaffing.ElementAt(i).IsActive = true; dbContext.TblInterviewEmployeeMappingStaffing.Add(tblInterviewManagement.TblInterviewEmployeeMappingStaffing.ElementAt(i)); } dbContext.SaveChanges(); //Requisition var requisition = dbContext.TblApplicantRequisitionStaffing.Where(r => r.ApplicantRequisitionId == tblInterviewManagement.ApplicantRequisitionId).FirstOrDefault(); requisition.Status = Round + "-" + InterviewStatus.InterviewScheduled; 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; SendInterviewScheduledMailToApplicant(tblInterviewManagement); // SendInterviewScheduledMailToPanel(tblInterviewManagement); return(1); }
public int CancelInterview(long id) { TblInterviewManagementStaffing tblInterviewManagement = dbContext.TblInterviewManagementStaffing.Where(r => r.InterviewId == id).FirstOrDefault(); dbContext.Entry(tblInterviewManagement).State = EntityState.Modified; tblInterviewManagement.ModifiedBy = CurrentContext.EmployeeID; tblInterviewManagement.ModifiedDate = DateTime.Now; tblInterviewManagement.Status = InterviewStatus.Cancelled; dbContext.TblInterviewManagementStaffing.Update(tblInterviewManagement); dbContext.SaveChanges(); dbContext.Entry(tblInterviewManagement).State = EntityState.Detached; //Requisition var requisition = dbContext.TblApplicantRequisitionStaffing.Where(r => r.ApplicantRequisitionId == tblInterviewManagement.ApplicantRequisitionId).FirstOrDefault(); 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; if (CurrentContext.RoleName == RoleConstants.RecruiterRole) { var interviewers = dbContext.TblInterviewEmployeeMappingStaffing.Where(r => r.InterviewId == tblInterviewManagement.InterviewId).Include(r => r.Employee).ToList(); foreach (TblInterviewEmployeeMappingStaffing interviewer in interviewers) { //Send Email Cancelled Interview dbContext.Entry(interviewer).State = EntityState.Modified; interviewer.IsActive = false; dbContext.TblInterviewEmployeeMappingStaffing.Update(interviewer); dbContext.SaveChanges(); dbContext.Entry(interviewer).State = EntityState.Detached; } SendInterviewCancelledMailToPanel(tblInterviewManagement, interviewers); } if (CurrentContext.RoleName == RoleConstants.EmployeeRole) { SendInterviewCancelledMailToRecruiter(tblInterviewManagement); } return(1); }
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); }
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); }
public int UpdateStatusOnStaffingFeedback(TblInterviewManagementStaffing tblInterviewManagement) { return(ApplicantStaffingDAL.UpdateStatusOnStaffingFeedback(tblInterviewManagement)); }
public int UpdateInterview(TblInterviewManagementStaffing tblInterviewManagement) { return(ApplicantStaffingDAL.UpdateInterview(tblInterviewManagement)); }
public int SaveInterviewDetails(TblInterviewManagementStaffing tblInterviewManagement) { return(ApplicantStaffingDAL.SaveInterviewDetails(tblInterviewManagement)); }
public IActionResult UpdateStatusOnStaffingFeedback([FromBody] TblInterviewManagementStaffing tblInterviewManagement) { int result = _applicantstaffing.UpdateStatusOnStaffingFeedback(tblInterviewManagement); return(Ok(result)); }
public IActionResult UpdateInterviewApplicant([FromBody] TblInterviewManagementStaffing tblInterviewManagement) { int result = _applicantstaffing.UpdateInterview(tblInterviewManagement); return(Ok(result)); }
public IActionResult AddInterviewApplicant([FromBody] TblInterviewManagementStaffing tblInterviewManagement) { int result = _applicantstaffing.SaveInterviewDetails(tblInterviewManagement); return(Ok(result)); }