using AutoMapper; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using TTSW.EF; using TTSW.Utils; using TTSW.Constant; using TTSW.Common; using TodoAPI2.Models; using System.IO; using System.Web; using System.Net; using TTSW.Configure; using Microsoft.Extensions.Options; using System.Data; namespace TodoAPI2.Models { public class search_employeeService : Isearch_employeeService { private IBaseRepository2 _repository; private IMyDatabase db; private Iexternal_linkageService ext; private Iexternal_employeeService emp; public search_employeeService(IBaseRepository2 repository, IMyDatabase mydb, Iexternal_linkageService inext, Iexternal_employeeService inemp) { db = mydb; ext = inext; _repository = repository; emp = inemp; } public search_employeeWithSelectionViewModel GetBlankItem() { var i = new search_employeeWithSelectionViewModel(); i.item_eva_evaluation_group_id = (from x in _repository.Context.eva_evaluation_group orderby x.thegroup select x).ToList(); i.item_org_id = (from x in ext.GetDepartmentData() orderby x.external_name select x).ToList(); return i; } public List GetListByfullname(string fullname) { var model = new search_employeeSearchModel(); model.fullname = fullname; return GetListBySearch(model); } public List GetListBySearch(search_employeeSearchModel model) { var allemp = emp.GetListByemployee_type(null, null).ToList(); var data = ( from m_search_employee in allemp join fk_eva_evaluation_group1_detail in _repository.Context.eva_evaluation_group_detail on m_search_employee.id equals fk_eva_evaluation_group1_detail.employee_id into eva_evaluation_groupResult1_detail from fk_eva_evaluation_groupResult1_detail in eva_evaluation_groupResult1_detail.DefaultIfEmpty() //join fk_eva_evaluation_group1 in _repository.Context.eva_evaluation_group on fk_eva_evaluation_groupResult1_detail.evaluation_group_id equals fk_eva_evaluation_group1.id //into eva_evaluation_groupResult1 //from fk_eva_evaluation_groupResult1 in eva_evaluation_groupResult1.DefaultIfEmpty() where 1 == 1 && ((fk_eva_evaluation_groupResult1_detail != null && fk_eva_evaluation_groupResult1_detail.evaluation_group_id == model.eva_evaluation_group_id) || !model.eva_evaluation_group_id.HasValue) && (string.IsNullOrEmpty(model.fullname) || (!string.IsNullOrEmpty(m_search_employee.fullname) && (m_search_employee.fullname.Contains(model.fullname)))) && (m_search_employee.department_id == model.org_id || !model.org_id.HasValue) orderby m_search_employee.fullname select new search_employeeViewModel() { id = m_search_employee.id, eva_evaluation_group_id = fk_eva_evaluation_groupResult1_detail != null ? fk_eva_evaluation_groupResult1_detail.evaluation_group_id : null, employee_number = m_search_employee.employee_no, fullname = m_search_employee.fullname, position_name = m_search_employee.position_name, level_name = m_search_employee.position_level_text, org_id = m_search_employee.department_id, remark = m_search_employee.user_email, eva_evaluation_group_id_eva_evaluation_group_code = null, org_id_external_linkage_external_name = m_search_employee.department_name, isActive = true, Created = null, Updated = null } ).ToList(); return data; } } }