Save AddOrEdit Jobs to group
This commit is contained in:
@@ -224,5 +224,73 @@ public class ClassificationGroupRepository : RepositoryBase<long, Classification
|
||||
return await _context.ClassificationEmployees.AnyAsync(x =>
|
||||
x.ClassificationGroupJobId == id && x.ClassificationGroupId == groupId);
|
||||
}
|
||||
|
||||
|
||||
public async Task<bool> SaveJobsToGroup(AddOrEditJobInGroupDto command)
|
||||
{
|
||||
var newJoblist = new List<ClassificationGroupJob>();
|
||||
var alreadyExitjobs = new List<ClassificationGroupJob>();
|
||||
var alreadyAdded = await _context.ClassificationGroups.Where(x => x.id == command.GroupId)
|
||||
.Include(x => x.ClassificationGroupJobs).FirstOrDefaultAsync();
|
||||
if (command.AddJobListDto.Count > 0)
|
||||
{
|
||||
var addedJobsIds = command.AddJobListDto.Where(x => x.JobId > 0).Select(x => x.JobId).ToList();
|
||||
var getJobs = _context.Jobs.Where(x => addedJobsIds.Contains(x.id));
|
||||
|
||||
foreach (var item in getJobs)
|
||||
{
|
||||
|
||||
var newJob = new ClassificationGroupJob(item.id, item.JobName, item.JobCode, command.GroupId,
|
||||
$"{command.GroupNoInt}");
|
||||
|
||||
if (alreadyAdded.ClassificationGroupJobs.Any(x => x.JobId == item.id))
|
||||
{
|
||||
alreadyExitjobs.Add(newJob);
|
||||
}
|
||||
else
|
||||
{
|
||||
newJoblist.Add(newJob);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (alreadyAdded.ClassificationGroupJobs.Count == 0)
|
||||
{
|
||||
|
||||
if (command.AddJobListDto.Count > 0)
|
||||
{
|
||||
|
||||
await _context.ClassificationGroupJobs.AddRangeAsync(newJoblist);
|
||||
await _context.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
|
||||
var alreadyExitJobsIds = alreadyExitjobs.Select(x => x.JobId).ToList();
|
||||
|
||||
var toBeRemove = alreadyAdded.ClassificationGroupJobs.Where(x => !alreadyExitJobsIds.Contains(x.JobId))
|
||||
.ToList();
|
||||
if (toBeRemove.Count > 0)
|
||||
{
|
||||
_context.ClassificationGroupJobs.RemoveRange(toBeRemove);
|
||||
await _context.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
||||
if (newJoblist.Count > 0)
|
||||
{
|
||||
await _context.ClassificationGroupJobs.AddRangeAsync(newJoblist);
|
||||
await _context.SaveChangesAsync();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user