diff --git a/CompanyManagment.EFCore/Repository/EmployeeRepository .cs b/CompanyManagment.EFCore/Repository/EmployeeRepository .cs index d7b362c7..751177b9 100644 --- a/CompanyManagment.EFCore/Repository/EmployeeRepository .cs +++ b/CompanyManagment.EFCore/Repository/EmployeeRepository .cs @@ -1275,5 +1275,31 @@ public class EmployeeRepository : RepositoryBase, IEmployeeRepos return result; } + + public async Task> GetWorkingEmployeesSelectList(long workshopId) + { + var dateNow = DateTime.Now.Date; + + + var workshopActiveLeftWorksQuery = _context.LeftWorkList.Where(x => x.WorkshopId == workshopId && + x.StartWorkDate <= dateNow && x.LeftWorkDate > dateNow); + + + var workshopActiveInsuranceLeftWorksQuery = _context.LeftWorkInsuranceList.Where(x => x.WorkshopId == workshopId && + x.StartWorkDate <= dateNow && (x.LeftWorkDate > dateNow || x.LeftWorkDate == null)); + + + var employeesQuery = _context.Employees.Where(x => workshopActiveLeftWorksQuery.Any(y => y.EmployeeId == x.id) || + workshopActiveInsuranceLeftWorksQuery.Any(y => y.EmployeeId == x.id)); + + + return await employeesQuery.Select(x => new EmployeeSelectListViewModel() + { + Id = x.id, + EmployeeFullName = x.FullName + }).ToListAsync(); + } + #endregion + } \ No newline at end of file