public IActionResult UngVienDuocXemCv(string id_ung_vien) { long total_recs = 0; string msg = ""; // Có id ứng viên => tìm được tất cả các note ứng viên job // Từ Id note ứng viên job lấy được các note, nhà tuyển dụng đã xem cv c var get_note_uv_job_by_id_uv = NoteUngVienJobBL.GetNoteUngVienByIdUngVien(app_id, id_ung_vien.Split(","), 1, out total_recs, out msg, 999, (is_sys_admin || is_app_admin)); // lấy id note ứng viên job var id_note_ung_vien_job = get_note_uv_job_by_id_uv.Select(x => x.id_note_ung_vien_job); var all_log_xem_cv_ung_vien = NoteBL.GetLogXemCvTuyenDung(id_note_ung_vien_job, out total_recs, out msg, 9999); var cv = all_log_xem_cv_ung_vien.GroupBy(x => x.id_obj).ToDictionary(o => o.Key, o => o.Select(x => x.noi_dung)); // //lấy id job var lst_id_job = get_note_uv_job_by_id_uv.Select(x => x.id_job); // tìm nhà tuyển dụng bằng id_job sau đó lấy được những nhà tuyển dụng đã được tạo ra gắn với job đó var nha_tuyen_dung_job = NhaTuyenDungBL.GetNhaTuyenDungByIdJob(app_id, lst_id_job, 1, out total_recs, out msg, 9999); // lst id đã shared trong mỗi nhà tuyển dụng var lst_id_shared = nha_tuyen_dung_job.Select(x => x.lst_id_share); List <string> lst = new List <string>(); foreach (var id in lst_id_shared) { lst.AddRange(id); } bool is_exist = lst.Intersect(id_note_ung_vien_job).Any(); // Dictionary <string, string> dic = new Dictionary <string, string>(); foreach (var item in cv.Where(x => id_note_ung_vien_job.Contains(x.Key))) { dic.Add(item.Key, item.Value.FirstOrDefault()); } foreach (var get in get_note_uv_job_by_id_uv) { if (dic.ContainsKey(get.id_note_ung_vien_job)) { get.ghi_chu = dic.Values.FirstOrDefault(); } else if (is_exist) { get.ghi_chu = "Đã gửi"; } else { get.ghi_chu = "Chưa gửi"; } } return(Ok(new DataResponse { data = get_note_uv_job_by_id_uv, success = true, msg = msg })); }