public void ImportRecruitmentHistory(string candidateIds, string UserLogin) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repo = new Rec_RecruitmentCampaignRepository(unitOfWork); var repoCandidate = new Rec_CandidateRepository(unitOfWork); var lstIds = candidateIds.Split(','); List<Guid> listID = new List<Guid>(); for (int i = 0; i < lstIds.Length; i++) { try { listID.Add(Guid.Parse(lstIds[i].ToString())); } catch { } } BaseService baseService = new BaseService(); string status = string.Empty; var listCandidates = repoCandidate.FindBy(x => listID.Contains(x.ID)).ToList(); foreach (var candidateModel in listCandidates) { List<object> lstObjhistory = new List<object>(); lstObjhistory.Add(candidateModel.IdentifyNumber); lstObjhistory.Add(candidateModel.CandidateName); lstObjhistory.Add(candidateModel.DateOfBirth); lstObjhistory.Add(candidateModel.DateApply); var recruimentHistory = baseService.ActionData<Rec_RecruitmentHistoryEntity>(lstObjhistory, ConstantSql.hrm_rec_sp_checkduplidaterecruimentHistory, true, UserLogin, ref status).FirstOrDefault(); if (recruimentHistory != null) { recruimentHistory.CandidateName = candidateModel.CandidateName; recruimentHistory.DateOfBirth = candidateModel.DateOfBirth; recruimentHistory.Gender = candidateModel.Gender; recruimentHistory.Phone = candidateModel.Phone; recruimentHistory.Mobile = candidateModel.Mobile; recruimentHistory.Email = candidateModel.Email; recruimentHistory.YearOfExperience = candidateModel.YearOfExperience.Value != null ? candidateModel.YearOfExperience.Value : 0; recruimentHistory.PositionID = candidateModel.PositionID; recruimentHistory.JobVacancyID = candidateModel.JobVacancyID; recruimentHistory.DateApply = candidateModel.DateApply; recruimentHistory.ScorePotential = candidateModel.ScorePotential; recruimentHistory.HealthStatus = candidateModel.HealthStatus; recruimentHistory.IdentifyNumber = candidateModel.IdentifyNumber; baseService.Edit(recruimentHistory); } else { Rec_RecruitmentHistoryEntity recruimentHistoryentity = new Rec_RecruitmentHistoryEntity(); recruimentHistoryentity.CandidateID = candidateModel.ID; recruimentHistoryentity.CandidateName = candidateModel.CandidateName; recruimentHistoryentity.DateOfBirth = candidateModel.DateOfBirth; recruimentHistoryentity.Gender = candidateModel.Gender; recruimentHistoryentity.Phone = candidateModel.Phone; recruimentHistoryentity.Mobile = candidateModel.Mobile; recruimentHistoryentity.Email = candidateModel.Email; recruimentHistoryentity.YearOfExperience = candidateModel.YearOfExperience.Value != null ? candidateModel.YearOfExperience.Value : 0; recruimentHistoryentity.PositionID = candidateModel.PositionID; recruimentHistoryentity.JobVacancyID = candidateModel.JobVacancyID; recruimentHistoryentity.DateApply = candidateModel.DateApply; recruimentHistoryentity.ScorePotential = candidateModel.ScorePotential; recruimentHistoryentity.HealthStatus = candidateModel.HealthStatus; recruimentHistoryentity.PassFilterResume = candidateModel.PassFilterResume; recruimentHistoryentity.Status = candidateModel.Status; recruimentHistoryentity.IdentifyNumber = candidateModel.IdentifyNumber; baseService.Add(recruimentHistoryentity); } } repo.SaveChanges(); } }
public Rec_InterviewModel Post([Bind]Rec_InterviewModel model) { #region Validate string message = string.Empty; var checkValidate = HRM.Business.Main.Domain.ValidatorService.OnValidateData<Rec_InterviewModel>(model, "Rec_Interview", ref message); if (!checkValidate) { model.ActionStatus = message; return model; } #endregion ActionService service = new ActionService(UserLogin); var result = service.UpdateOrCreate<Rec_InterviewEntity, Rec_InterviewModel>(model); var RecruitmentHisService = new Rec_RecruitmentHistoryServices(); var candService = new Rec_CandidateServices(); var InTerCamDetaiServices = new Rec_InterviewCampaignDetailServices(); Rec_RecruitmentHistoryEntity ObjRecruitmentHistory = null; Rec_RecruitmentHistoryServices RecruitmentHistoryServices = new Rec_RecruitmentHistoryServices(); Rec_CandidateEntity ObjCandidate = null; Rec_CandidateServices CandidateServices = new Rec_CandidateServices(); Rec_InterviewCampaignDetailEntity ObjInterviewCampaignDetail = null; Rec_InterviewCampaignDetailServices InterviewCampaignDetailServices = new Rec_InterviewCampaignDetailServices(); string status = string.Empty; #region xử lý cap nhat lich su ung vien, cap nhat ung vien if (result != null) { ObjRecruitmentHistory = new Rec_RecruitmentHistoryEntity(); ObjCandidate = new Rec_CandidateEntity(); ObjInterviewCampaignDetail = new Rec_InterviewCampaignDetailEntity(); var IlRecruitmentHistory = RecruitmentHisService.GetData<Rec_RecruitmentHistoryEntity>(result.CandidateID, ConstantSql.hrm_rec_sp_get_RecruitmentHistoryIdByCandidateId,UserLogin, ref status).OrderByDescending(s => s.DateApply).FirstOrDefault(); var IlCandate = candService.GetData<Rec_CandidateEntity>(result.CandidateID, ConstantSql.hrm_rec_sp_get_CandidateById, UserLogin, ref status).FirstOrDefault(); var IlInterviewcampaugnDetail = InTerCamDetaiServices.GetData<Rec_InterviewCampaignDetailEntity>(result.CandidateID, ConstantSql.hrm_rec_sp_get_InterviewCampaignDetailByCddId, UserLogin ,ref status).ToList(); ObjCandidate = IlCandate; ObjRecruitmentHistory = IlRecruitmentHistory; if (IlCandate != null) { string[] strCondition = model.ConditionTemp.Split('|').ToArray(); foreach (var Objitem in strCondition) { string[] item = Objitem.Split(',').ToArray(); if(item[0].ToString() == EnumDropDown.JobCondition.E_HEIGHT.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.Height = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_WEIGHT.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.Weight = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_LEVELEYES.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.LevelEye = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_LEVERIGHTLEYES.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.LevelEyeRight = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_MUSCULOSKELETAL.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.Musculoskeletal = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_BLOODPRESSURE.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.BloodPressure = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_HEARTBEAT.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.HeartBeat = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_GENARALHEALTH.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.GenaralHealth = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_DISEASELISTIDS.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.DiseaseListIDs = item[1].ToString(); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_WRITETEST.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.WriteTest = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_INTERVIEW.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.Interview = double.Parse(item[1].ToString()); } } } ObjCandidate.LevelInterview = result.LevelInterview; if (result.ResultInterview.Equals(HRM.Infrastructure.Utilities.Interview.E_FAIL.ToString())) { ObjCandidate.Status = HRM.Infrastructure.Utilities.Interview.E_FAIL.ToString(); ObjCandidate.DateUpdate = DateTime.Now; } // Nếu có nhập điểm thì gán ngày đánh giá = ngày phỏng vấn if (model != null && (model.Score1 != null || model.Score2 != null)) { ObjCandidate.DateExam = model.DateInterview; ObjCandidate.DateUpdate = DateTime.Now; } if(ObjCandidate.JobVacancyID != null) { var entityJobVacancy = service.GetData<Rec_JobVacancyEntity>(Common.DotNetToOracle(ObjCandidate.JobVacancyID.ToString()), ConstantSql.hrm_rec_sp_get_JobVacancyId, ref status).FirstOrDefault(); if (entityJobVacancy.NoLevelInterview == result.LevelInterview && result.ResultInterview.Equals(HRM.Infrastructure.Utilities.Interview.E_PASS.ToString())) { if (IlCandate != null) { ObjCandidate.Status = HRM.Infrastructure.Utilities.EnumDropDown.CandidateStatus.E_PASS.ToString(); ObjCandidate.DateUpdate = DateTime.Now; } if (IlRecruitmentHistory != null) { ObjRecruitmentHistory.Status = HRM.Infrastructure.Utilities.Interview.E_PASS.ToString(); ObjRecruitmentHistory.DateUpdate = DateTime.Now; } } } } if (IlRecruitmentHistory != null) { // Nếu có nhập điểm thì gán ngày đánh giá = ngày phỏng vấn if (model != null && (model.Score1 != null || model.Score2 != null)) { IlRecruitmentHistory.DateExam = model.DateInterview; } ObjRecruitmentHistory = IlRecruitmentHistory; ObjRecruitmentHistory.LevelInterview = result.LevelInterview; if (result.ResultInterview.Equals(HRM.Infrastructure.Utilities.Interview.E_FAIL.ToString())) { //cap nhat status cho lich su ung vien ObjRecruitmentHistory.Status = HRM.Infrastructure.Utilities.Interview.E_FAIL.ToString(); } } //Cập nhật level cho intercampaigndetail if (IlInterviewcampaugnDetail != null) { var ObjTemp = IlInterviewcampaugnDetail.Where(s => s.CandidateID == result.CandidateID && s.LevelInterview == null).FirstOrDefault(); if (ObjTemp != null) { ObjInterviewCampaignDetail = ObjTemp; ObjInterviewCampaignDetail.LevelInterview = result.LevelInterview; } } message = InterviewCampaignDetailServices.Edit(ObjInterviewCampaignDetail); message = RecruitmentHistoryServices.Edit(ObjRecruitmentHistory); message = CandidateServices.Edit(ObjCandidate); } #endregion return result; }