Esempio n. 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);
        }
Esempio n. 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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        //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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
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);
        }
Esempio n. 9
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);
        }
Esempio n. 10
0
 public int UpdateStatusOnStaffingFeedback(TblInterviewManagementStaffing tblInterviewManagement)
 {
     return(ApplicantStaffingDAL.UpdateStatusOnStaffingFeedback(tblInterviewManagement));
 }
Esempio n. 11
0
 public int UpdateInterview(TblInterviewManagementStaffing tblInterviewManagement)
 {
     return(ApplicantStaffingDAL.UpdateInterview(tblInterviewManagement));
 }
Esempio n. 12
0
 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));
        }