From 14c0c0edf15939888735ea68c1c4417ae0cf94d4 Mon Sep 17 00:00:00 2001 From: SamSys Date: Sat, 7 Dec 2024 20:34:56 +0330 Subject: [PATCH] Add AsSpliteQuery --- ...omizeWorkshopEmployeeSettingsRepository.cs | 9 +-- ...ustomizeWorkshopGroupSettingsRepository.cs | 37 ++++++------ .../CustomizeWorkshopSettingsRepository.cs | 56 ++++++++++++++----- 3 files changed, 68 insertions(+), 34 deletions(-) diff --git a/CompanyManagment.EFCore/Repository/CustomizeWorkshopEmployeeSettingsRepository.cs b/CompanyManagment.EFCore/Repository/CustomizeWorkshopEmployeeSettingsRepository.cs index c832f850..229dcf13 100644 --- a/CompanyManagment.EFCore/Repository/CustomizeWorkshopEmployeeSettingsRepository.cs +++ b/CompanyManagment.EFCore/Repository/CustomizeWorkshopEmployeeSettingsRepository.cs @@ -103,7 +103,7 @@ public class CustomizeWorkshopEmployeeSettingsRepository(CompanyContext companyC public CustomizeWorkshopEmployeeSettings GetByEmployeeIdGroupSettingsId(long workshopId, long employeeId) { - return _companyContext.CustomizeWorkshopEmployeeSettings.Include(x => x.CustomizeWorkshopGroupSettings).FirstOrDefault(x => + return _companyContext.CustomizeWorkshopEmployeeSettings.AsSplitQuery().Include(x => x.CustomizeWorkshopGroupSettings).FirstOrDefault(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId); } @@ -118,7 +118,7 @@ public class CustomizeWorkshopEmployeeSettingsRepository(CompanyContext companyC public List GetBy(long groupId) { return _companyContext.CustomizeWorkshopEmployeeSettings - .Where(x => x.CustomizeWorkshopGroupSettingId == groupId).ToList(); + .AsSplitQuery().Where(x => x.CustomizeWorkshopGroupSettingId == groupId).ToList(); } public List GetEmployeeSettingsByWorkshopId(long workshopId) @@ -152,8 +152,9 @@ public class CustomizeWorkshopEmployeeSettingsRepository(CompanyContext companyC public List GetEmployeeSettingNotInMainGroup(long workshopId) { - return _companyContext.CustomizeWorkshopEmployeeSettings.Where(x => x.WorkshopId == workshopId) - .Include(x => x.CustomizeWorkshopGroupSettings).Where(x => !x.CustomizeWorkshopGroupSettings.MainGroup).Select(x => new CustomizeWorkshopEmployeeSettingsViewModel() + return _companyContext.CustomizeWorkshopEmployeeSettings.AsSplitQuery().Where(x => x.WorkshopId == workshopId) + .Include(x => x.CustomizeWorkshopGroupSettings).Where(x => !x.CustomizeWorkshopGroupSettings.MainGroup) + .Select(x => new CustomizeWorkshopEmployeeSettingsViewModel() { Id = x.id, EmployeeId = x.EmployeeId diff --git a/CompanyManagment.EFCore/Repository/CustomizeWorkshopGroupSettingsRepository.cs b/CompanyManagment.EFCore/Repository/CustomizeWorkshopGroupSettingsRepository.cs index 454effed..1ce21c93 100644 --- a/CompanyManagment.EFCore/Repository/CustomizeWorkshopGroupSettingsRepository.cs +++ b/CompanyManagment.EFCore/Repository/CustomizeWorkshopGroupSettingsRepository.cs @@ -26,7 +26,7 @@ public class CustomizeWorkshopGroupSettingsRepository(CompanyContext companyCont public CustomizeWorkshopGroupSettings GetIncludeWorkshopSettings(long id) { - return _companyContext.CustomizeWorkshopGroupSettings.Include(x => x.CustomizeWorkshopSettings) + return _companyContext.CustomizeWorkshopGroupSettings.AsSplitQuery().Include(x => x.CustomizeWorkshopSettings) .FirstOrDefault(x => x.id == id); } @@ -46,37 +46,40 @@ public class CustomizeWorkshopGroupSettingsRepository(CompanyContext companyCont return new(); var existsEmployees = _companyContext.CustomizeWorkshopEmployeeSettings - .Include(x=>x.CustomizeWorkshopGroupSettings) + .AsSplitQuery().Include(x=>x.CustomizeWorkshopGroupSettings) .Where(x => x.WorkshopId == workshopSettings.WorkshopId && !x.CustomizeWorkshopGroupSettings.MainGroup) .Select(x=>x.EmployeeId).ToList(); - var workshopId = workshopSettings.WorkshopId; var rollCallEmployees = _rollCallEmployeeRepository.GetActivePersonnelByWorkshopId(workshopId); - - var employees = rollCallEmployees - .Where(x=>!existsEmployees.Contains(x.EmployeeId)) - .Select(x => new EmployeeViewModel() - { - EmployeeFullName = x.EmployeeFullName, - Id = x.EmployeeId - }).ToList(); + .Where(x => !existsEmployees.Contains(x.EmployeeId)) + .Select(x => new EmployeeViewModel() + { + EmployeeFullName = x.EmployeeFullName, + Id = x.EmployeeId + }).ToList(); + + //var workingEmployeeIds = _companyContext.LeftWorkList + // .Where(x => employees.Any(e => e.Id == x.EmployeeId) && x.WorkshopId == workshopId && !x.HasLeft) + // .Select(x => x.EmployeeId).ToList(); + + // employees = employees.Where(x => workingEmployeeIds.Contains(x.Id)).ToList(); return employees; } public CustomizeWorkshopGroupSettings GetWithEmployees(long groupId) { - return _companyContext.CustomizeWorkshopGroupSettings.Include(x => x.CustomizeWorkshopEmployeeSettingsCollection) + return _companyContext.CustomizeWorkshopGroupSettings.AsSplitQuery().Include(x => x.CustomizeWorkshopEmployeeSettingsCollection) .FirstOrDefault(x => x.id == groupId); } public List GetShiftChangedEmployeeSettingsByGroupSettingsId(long groupSettingsId) { var groupEmployeeSettingsList = _companyContext.CustomizeWorkshopGroupSettings - .Include(x => x.CustomizeWorkshopEmployeeSettingsCollection) + .AsSplitQuery().Include(x => x.CustomizeWorkshopEmployeeSettingsCollection) .FirstOrDefault(x => x.id == groupSettingsId)?.CustomizeWorkshopEmployeeSettingsCollection .Where(x => x.IsShiftChanged).ToList(); if (groupEmployeeSettingsList == null) @@ -108,7 +111,7 @@ public class CustomizeWorkshopGroupSettingsRepository(CompanyContext companyCont public List GetSettingChangedEmployeeSettingsByGroupSettingsId(long groupSettingsId) { var groupEmployeeSettingsList = _companyContext.CustomizeWorkshopGroupSettings - .Include(x => x.CustomizeWorkshopEmployeeSettingsCollection) + .AsSplitQuery().Include(x => x.CustomizeWorkshopEmployeeSettingsCollection) .FirstOrDefault(x => x.id == groupSettingsId)?.CustomizeWorkshopEmployeeSettingsCollection .Where(x => x.IsSettingChanged).ToList(); if (groupEmployeeSettingsList == null) @@ -140,7 +143,7 @@ public class CustomizeWorkshopGroupSettingsRepository(CompanyContext companyCont public List GetEmployeeSettingsByGroupSettingsId(long groupSettingsId) { - var entity = _companyContext.CustomizeWorkshopGroupSettings.Include(x=>x.CustomizeWorkshopEmployeeSettingsCollection) + var entity = _companyContext.CustomizeWorkshopGroupSettings.AsSplitQuery().Include(x=>x.CustomizeWorkshopEmployeeSettingsCollection) .FirstOrDefault(x => x.id == groupSettingsId); if (entity == null) @@ -178,7 +181,7 @@ public class CustomizeWorkshopGroupSettingsRepository(CompanyContext companyCont public EditCustomizeWorkshopGroupSettings GetCustomizeWorkshopGroupSettingsDetails(long groupId) { - var entity = _companyContext.CustomizeWorkshopGroupSettings.FirstOrDefault(x => x.id == groupId); + var entity = _companyContext.CustomizeWorkshopGroupSettings.AsSplitQuery().FirstOrDefault(x => x.id == groupId); return new EditCustomizeWorkshopGroupSettings() { FridayWork = entity.FridayWork, @@ -258,7 +261,7 @@ public class CustomizeWorkshopGroupSettingsRepository(CompanyContext companyCont public List GetAllGroupsIncludeEmployeeSettingsByWorkshopSettingsId(long workshopSettingsId) { return _companyContext.CustomizeWorkshopGroupSettings - .Include(x => x.CustomizeWorkshopEmployeeSettingsCollection) + .AsSplitQuery().Include(x => x.CustomizeWorkshopEmployeeSettingsCollection) .Where(x => x.CustomizeWorkshopSettingId == workshopSettingsId).ToList(); } diff --git a/CompanyManagment.EFCore/Repository/CustomizeWorkshopSettingsRepository.cs b/CompanyManagment.EFCore/Repository/CustomizeWorkshopSettingsRepository.cs index 10f30938..84b9528c 100644 --- a/CompanyManagment.EFCore/Repository/CustomizeWorkshopSettingsRepository.cs +++ b/CompanyManagment.EFCore/Repository/CustomizeWorkshopSettingsRepository.cs @@ -1,6 +1,4 @@ - - -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -24,7 +22,7 @@ namespace CompanyManagment.EFCore.Repository public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopId(long workshopId,AuthViewModel auth) { - var entity = _companyContext.CustomizeWorkshopSettings.Where(x => x.WorkshopId == workshopId) + var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().Where(x => x.WorkshopId == workshopId) .Include(x => x.CustomizeWorkshopGroupSettingsCollection) .ThenInclude(x => x.CustomizeWorkshopEmployeeSettingsCollection).AsSplitQuery() .FirstOrDefault(); @@ -85,8 +83,7 @@ namespace CompanyManagment.EFCore.Repository } public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopIdForAdmin(long workshopId) { - - var entity = _companyContext.CustomizeWorkshopSettings.Where(x => x.WorkshopId == workshopId) + var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().Where(x => x.WorkshopId == workshopId) .Include(x => x.CustomizeWorkshopGroupSettingsCollection) .ThenInclude(x => x.CustomizeWorkshopEmployeeSettingsCollection).AsSplitQuery() .FirstOrDefault(); @@ -136,8 +133,7 @@ namespace CompanyManagment.EFCore.Repository }).ToList(), }; } - public CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByWorkshopIdGroupSettingsId(long workshopId, - long employeeId) + public CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByWorkshopIdGroupSettingsId(long workshopId, long employeeId) { throw new NotImplementedException(); } @@ -222,7 +218,10 @@ namespace CompanyManagment.EFCore.Repository ShiftsList = entity.CustomizeWorkshopSettingsShifts.Select(x => new CustomizeWorkshopShiftViewModel() { EndTime = x.EndTime.ToString("HH:mm"), Placement = x.Placement, StartTime = x.StartTime.ToString("HH:mm") }).ToList(), BonusesPaysInEndOfMonth = entity.BonusesPaysInEndOfMonth, - LeavePermittedDays = entity.LeavePermittedDays + LeavePermittedDays = entity.LeavePermittedDays, + BaseYearsPayInEndOfYear = entity.BaseYearsPayInEndOfYear, + WorkshopId = entity.WorkshopId, + WorkshopShiftStatus = entity.WorkshopShiftStatus }; return viewModel; @@ -231,7 +230,7 @@ namespace CompanyManagment.EFCore.Repository public EditCustomizeWorkshopSettings GetSimpleWorkshopSettings(long workshopId) { - var entity = _companyContext.CustomizeWorkshopSettings.FirstOrDefault(x => x.WorkshopId == workshopId); + var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().FirstOrDefault(x => x.WorkshopId == workshopId); if (entity == null) { return new(); @@ -256,7 +255,7 @@ namespace CompanyManagment.EFCore.Repository { - var result = from groupSetting in _companyContext.CustomizeWorkshopGroupSettings + var result = from groupSetting in _companyContext.CustomizeWorkshopGroupSettings.AsSplitQuery() where groupSetting.IsShiftChange // Filter parent tables where isChange is true join employeeSettings in _companyContext.CustomizeWorkshopEmployeeSettings on groupSetting.id equals employeeSettings.CustomizeWorkshopGroupSettingId where employeeSettings.IsShiftChanged// Filter child tables where isChange is true @@ -272,10 +271,41 @@ namespace CompanyManagment.EFCore.Repository } + public CustomizeWorkshopSettingsViewModel GetWorkshopIncludeGroupsByWorkshopId(long workshopId) + { + var customizeWorkshopSettings = _companyContext.CustomizeWorkshopSettings + .AsSplitQuery().Where(x => x.WorkshopId == workshopId) + .Include(x => x.CustomizeWorkshopGroupSettingsCollection) + .Select(x => new CustomizeWorkshopSettingsViewModel() + { + Id = x.id, + WorkshopShiftStatus = x.WorkshopShiftStatus, + GroupSettings = x.CustomizeWorkshopGroupSettingsCollection.Select(g => + new CustomizeWorkshopGroupSettingsViewModel() + { + Id = g.id, + IrregularShift = g.IrregularShift, + WorkshopShiftStatus = g.WorkshopShiftStatus, + GroupName = g.GroupName, + MainGroup = g.MainGroup, + RollCallWorkshopShifts = g.CustomizeWorkshopGroupSettingsShifts.Select(s => + new CustomizeWorkshopShiftViewModel() + { + StartTime = s.StartTime.ToString("HH:mm"), + EndTime = s.EndTime.ToString("HH:mm"), + Placement = s.Placement, + }).ToList() + }).ToList(), + + }).FirstOrDefault(); + + return customizeWorkshopSettings; + } + public CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByWorkshopIdEmployeeId(long workshopId, long employeeId) { var employee = _companyContext.CustomizeWorkshopSettings - .Include(x => x.CustomizeWorkshopGroupSettingsCollection) + .AsSplitQuery().Include(x => x.CustomizeWorkshopGroupSettingsCollection) .ThenInclude(x => x.CustomizeWorkshopEmployeeSettingsCollection) .FirstOrDefault(x => x.WorkshopId == workshopId)?.CustomizeWorkshopGroupSettingsCollection.SelectMany(x => x.CustomizeWorkshopEmployeeSettingsCollection) .FirstOrDefault(x => x.EmployeeId == employeeId); @@ -287,8 +317,8 @@ namespace CompanyManagment.EFCore.Repository .FirstOrDefault(x => x.id == employee.EmployeeId); return new CustomizeWorkshopEmployeeSettingsViewModel() { - EmployeeId = employee.EmployeeId, Id = employee.id, + EmployeeId = employee.EmployeeId, IsSettingChanged = employee.IsSettingChanged, IsShiftChanged = employee.IsShiftChanged, Name = employeeName?.FullName,