Example #1
0
        public IActionResult GetLog(string id_obj)
        {
            long   total_recs = 0;
            string msg        = "";
            // Số lần nhà tuyển dụng đã truy cập
            var all_log_truy_cap        = NoteBL.GetAllLogNhaTuyenDung(id_obj, out total_recs, out msg, 9999);
            var nha_tuyen_dung          = NhaTuyenDungBL.GetById(id_obj);
            var note_ung_vien_da_shared = nha_tuyen_dung?.lst_id_share;
            // Nhà tuyển dụng đã xem ứng viên nào
            var all_log_xem_cv_ung_vien = NoteBL.GetAllNhaTuyenDungXemCvUngVien(note_ung_vien_da_shared, nha_tuyen_dung.id_nha_tuyen_dung, out total_recs, out msg, 9999);
            // Note của nhà tuyển dụng cho ứng viên
            var all_note_cua_ntd = NoteBL.NhaTuyenDungNoteUngVien(note_ung_vien_da_shared, nha_tuyen_dung.id_nha_tuyen_dung, out total_recs, out msg, 9999);
            //
            var get_id_note_from_note = all_note_cua_ntd.Select(x => x.id_obj);
            // get list note ứng viên job từ note của ứng viên
            var lst_id_note_ung_vien_job = NoteUngVienJobBL.GetMany(get_id_note_from_note);
            // lấy list id ứng viên từ list note ứng viên job
            var lst_id_ung_vien = lst_id_note_ung_vien_job.Select(x => x.id_ung_vien);
            // lấy được list ứng viên
            var ung_vien = QLCUNL.BL.UngVienBL.GetMany(lst_id_ung_vien).ToDictionary(x => x.id_ung_vien, y => y);
            List <NoteUngVienJobMap> lst = new List <NoteUngVienJobMap>();

            foreach (var item in lst_id_note_ung_vien_job)
            {
                NoteUngVienJobMap map = new NoteUngVienJobMap(item, ung_vien);
                lst.Add(map);
            }

            List <NoteUngVienJobMap> lst_cv_log = new List <NoteUngVienJobMap>();

            foreach (var item in all_log_xem_cv_ung_vien)
            {
                NoteUngVienJobMap map_note_ung_vien = new NoteUngVienJobMap(item, lst);
                lst_cv_log.Add(map_note_ung_vien);
            }

            List <NoteUngVienJobMap> lst_map = new List <NoteUngVienJobMap>();

            foreach (var item in all_note_cua_ntd)
            {
                NoteUngVienJobMap map_note_ung_vien = new NoteUngVienJobMap(item, lst);
                lst_map.Add(map_note_ung_vien);
            }
            return(Ok(new { data_log = all_log_truy_cap, data_cv = lst_cv_log, data_note = lst_map, success = true, msg = msg }));
        }
Example #2
0
        public IActionResult Search(string term, string id_user, string id_job, string id_ung_vien, long ngay_gio_phong_van_from, long ngay_gio_phong_van_to,
                                    long ngay_di_lam_from, long ngay_di_lam_to, double luong_thu_viec_from, long luong_thu_viec_to, double luong_chinh_thuc_from, long luong_chinh_thuc_to, string thuoc_tinh, string thuoc_tinh_rieng
                                    , int page, int page_size)
        {
            List <int>            lst_thuoc_tinh       = new List <int>();
            List <int>            lst_thuoc_tinh_rieng = new List <int>();
            List <string>         lst_id = new List <string>();
            bool                  is_find_thuoc_tinh_rieng = false;
            List <NoteUngVienJob> data_note_ung_vien_job   = new List <NoteUngVienJob>();
            long                  total_recs = 0;
            string                msg        = "";

            if (!string.IsNullOrEmpty(thuoc_tinh))
            {
                foreach (var tt in thuoc_tinh.Split(','))
                {
                    int t = -1;
                    if (Int32.TryParse(tt, out t))
                    {
                        lst_thuoc_tinh.Add(t);
                    }
                }
            }
            if (!string.IsNullOrEmpty(thuoc_tinh_rieng))
            {
                foreach (var tt in thuoc_tinh_rieng.Split(','))
                {
                    int t = -1;
                    if (Int32.TryParse(tt, out t))
                    {
                        lst_thuoc_tinh_rieng.Add(t);
                    }
                }
                if (lst_thuoc_tinh_rieng.Count > 0)
                {
                    is_find_thuoc_tinh_rieng = true;
                    var lst_id_obj = BL.ThuocTinhDuLieuBL.Search(app_id, user, LoaiThuocTinh.NOTE_UNG_VIEN_JOB, lst_thuoc_tinh_rieng, page, out long total_recs_thuoc_tinh, out _, 9999);
                    lst_id = lst_id_obj.Select(x => x.id_obj).ToList();
                }
            }
            if (is_find_thuoc_tinh_rieng && lst_id.Count == 0 && lst_thuoc_tinh.Count == 0)
            {
            }
            else
            {
                data_note_ung_vien_job = QLCUNL.BL.NoteUngVienJobBL.Search(app_id, user, group, "", id_user, id_job, id_ung_vien, ngay_gio_phong_van_from, ngay_gio_phong_van_to, ngay_di_lam_from, ngay_di_lam_to,
                                                                           luong_thu_viec_from, luong_thu_viec_to, luong_chinh_thuc_from, luong_chinh_thuc_to, lst_thuoc_tinh, lst_id, page, out total_recs, out msg, page_size, (is_sys_admin || is_app_admin), fields);
            }
            var lst_id_job        = data_note_ung_vien_job.Select(x => x.id_job);
            var lst_id_ung_vien   = data_note_ung_vien_job.Select(x => x.id_ung_vien);
            var data_job          = QLCUNL.BL.JobBL.GetMany(app_id, lst_id_job, new string[] { "chuc_danh", "cong_ty", "nguoi_lien_he" }).ToDictionary(x => x.id_job, y => y);
            var data_ung_vien     = QLCUNL.BL.UngVienBL.GetMany(lst_id_ung_vien).ToDictionary(x => x.id_ung_vien, y => y);
            var lst_id_thuoc_tinh = data_note_ung_vien_job.Where(x => x.thuoc_tinh != null).SelectMany(x => x.thuoc_tinh).ToList();

            // tìm note nhà tuyển dụng của từng ứng viên.
            long total_seen          = 0;
            var  list_id_note_uv_job = data_note_ung_vien_job.Select(x => x.id_note_ung_vien_job);

            var tim_ntd_by_list_note = NhaTuyenDungBL.GetNhaTuyenDungByLstIdShare(app_id, list_id_note_uv_job, 1, out total_seen, out msg, 9999);
            var id_ntd            = tim_ntd_by_list_note.Select(x => x.id);
            var id_nha_tuyen_dung = tim_ntd_by_list_note.Select(x => x.id_nha_tuyen_dung);
            //var nguoi_tao = string.Join(",", id_nha_tuyen_dung);
            //var note_nha_tuyen_dung = NoteBL.NhaTuyenDungNoteUngVien(id_ntd, nguoi_tao, out total_seen, out msg, 9999);

            var list_name = new List <string>();
            var lst_note  = new List <Note>();

            foreach (var nguoi_tao in tim_ntd_by_list_note)
            {
                list_name.Add(nguoi_tao.id_nha_tuyen_dung);
            }

            foreach (var item in list_name)
            {
                var ntd_xem_cv_ung_vien = NoteBL.GetAllNhaTuyenDungXemCvUngVien(list_id_note_uv_job, item, out total_seen, out msg, 9999);
                lst_note.AddRange(ntd_xem_cv_ung_vien);
            }

            List <NoteUngVienJobMap> lst = new List <NoteUngVienJobMap>();

            var dic_thuoc_tinh_rieng = QLCUNL.BL.ThuocTinhDuLieuBL.GetIdThuocTinhByIdObj(app_id, data_note_ung_vien_job.Select(x => x.id_note_ung_vien_job), user);

            if (dic_thuoc_tinh_rieng.Count > 0)
            {
                foreach (var tt_r in dic_thuoc_tinh_rieng)
                {
                    lst_id_thuoc_tinh.AddRange(tt_r.Value);
                }
            }
            var data_thuoc_tinh = QLCUNL.BL.ThuocTinhBL.GetManyByGiaTri(app_id, lst_id_thuoc_tinh, LoaiThuocTinh.NOTE_UNG_VIEN_JOB, -1);

            foreach (var item in data_note_ung_vien_job)
            {
                dic_thuoc_tinh_rieng.TryGetValue(item.id_note_ung_vien_job, out List <int> tt_rieng);
                if (tt_rieng == null)
                {
                    tt_rieng = new List <int>();
                }
                NoteUngVienJobMap note = new NoteUngVienJobMap(item, data_job, data_ung_vien, data_thuoc_tinh, tt_rieng);

                foreach (var em in lst_note.Where(x => x.id_obj.Contains(item.id_note_ung_vien_job)))
                {
                    if (em.id_obj == item.id_note_ung_vien_job)
                    {
                        note.xem_cv = true;
                    }
                    else
                    {
                        note.xem_cv = false;
                    }
                }

                lst.Add(note);
            }

            return(Ok(new DataResponsePaging()
            {
                data = lst, total = total_recs, success = data_note_ung_vien_job != null, msg = msg
            }));
        }