Add AsSpliteQuery

This commit is contained in:
SamSys
2024-12-07 20:34:56 +03:30
parent 1691d0161b
commit 14c0c0edf1
3 changed files with 68 additions and 34 deletions

View File

@@ -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<CustomizeWorkshopEmployeeSettings> GetBy(long groupId)
{
return _companyContext.CustomizeWorkshopEmployeeSettings
.Where(x => x.CustomizeWorkshopGroupSettingId == groupId).ToList();
.AsSplitQuery().Where(x => x.CustomizeWorkshopGroupSettingId == groupId).ToList();
}
public List<CustomizeWorkshopEmployeeSettingsViewModel> GetEmployeeSettingsByWorkshopId(long workshopId)
@@ -152,8 +152,9 @@ public class CustomizeWorkshopEmployeeSettingsRepository(CompanyContext companyC
public List<CustomizeWorkshopEmployeeSettingsViewModel> 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

View File

@@ -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<CustomizeWorkshopEmployeeSettingsViewModel> 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<CustomizeWorkshopEmployeeSettingsViewModel> 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<CustomizeWorkshopEmployeeSettingsViewModel> 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<CustomizeWorkshopGroupSettings> GetAllGroupsIncludeEmployeeSettingsByWorkshopSettingsId(long workshopSettingsId)
{
return _companyContext.CustomizeWorkshopGroupSettings
.Include(x => x.CustomizeWorkshopEmployeeSettingsCollection)
.AsSplitQuery().Include(x => x.CustomizeWorkshopEmployeeSettingsCollection)
.Where(x => x.CustomizeWorkshopSettingId == workshopSettingsId).ToList();
}

View File

@@ -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,