Skip to content

Commit

Permalink
Pass context into DetachTracking
Browse files Browse the repository at this point in the history
  • Loading branch information
andchiind committed Jan 20, 2025
1 parent 5d34a58 commit 12e8575
Show file tree
Hide file tree
Showing 13 changed files with 77 additions and 76 deletions.
6 changes: 3 additions & 3 deletions backend/api/Services/AccessRoleService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ RoleAccessLevel accessLevel
);
public Task<AccessRole?> ReadByInstallation(Installation installation);
public Task<List<AccessRole>> ReadAll();
public void DetachTracking(AccessRole accessRole);
public void DetachTracking(FlotillaDbContext context, AccessRole accessRole);
}

public class AccessRoleService(
Expand Down Expand Up @@ -101,7 +101,7 @@ RoleAccessLevel accessLevel

await context.AccessRoles.AddAsync(newAccessRole);
await context.SaveChangesAsync();
DetachTracking(newAccessRole);
DetachTracking(context, newAccessRole);
return newAccessRole!;
}

Expand Down Expand Up @@ -135,7 +135,7 @@ public bool IsAuthenticationAvailable()
return httpContextAccessor.HttpContext != null;
}

public void DetachTracking(AccessRole accessRole)
public void DetachTracking(FlotillaDbContext context, AccessRole accessRole)
{
context.Entry(accessRole).State = EntityState.Detached;
}
Expand Down
16 changes: 8 additions & 8 deletions backend/api/Services/AreaService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public Task<PagedList<Area>> ReadAll(

public Task<Area?> Delete(string id);

public void DetachTracking(Area area);
public void DetachTracking(FlotillaDbContext context, Area area);
}

[SuppressMessage(
Expand Down Expand Up @@ -210,15 +210,15 @@ await inspectionAreaService.ReadByInstallationAndPlantAndName(
await context.Areas.AddAsync(newArea);
await ApplyDatabaseUpdate(installation);

DetachTracking(newArea);
DetachTracking(context, newArea);
return newArea;
}

public async Task<Area> Update(Area area)
{
var entry = context.Update(area);
await ApplyDatabaseUpdate(area.Installation);
DetachTracking(area);
DetachTracking(context, area);
return entry.Entity;
}

Expand Down Expand Up @@ -353,16 +353,16 @@ AreaQueryStringParameters parameters
return Expression.Lambda<Func<Area, bool>>(body, area);
}

public void DetachTracking(Area area)
public void DetachTracking(FlotillaDbContext context, Area area)
{
if (area.Installation != null)
installationService.DetachTracking(area.Installation);
installationService.DetachTracking(context, area.Installation);
if (area.Plant != null)
plantService.DetachTracking(area.Plant);
plantService.DetachTracking(context, area.Plant);
if (area.InspectionArea != null)
inspectionAreaService.DetachTracking(area.InspectionArea);
inspectionAreaService.DetachTracking(context, area.InspectionArea);
if (area.DefaultLocalizationPose != null)
defaultLocalizationPoseService.DetachTracking(area.DefaultLocalizationPose);
defaultLocalizationPoseService.DetachTracking(context, area.DefaultLocalizationPose);
context.Entry(area).State = EntityState.Detached;
}
}
Expand Down
8 changes: 4 additions & 4 deletions backend/api/Services/DefaultLocalizationPoseService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ DefaultLocalizationPose defaultLocalizationPose

public abstract Task<DefaultLocalizationPose?> Delete(string id);

public void DetachTracking(DefaultLocalizationPose defaultLocalizationPose);
public void DetachTracking(FlotillaDbContext context, DefaultLocalizationPose defaultLocalizationPose);
}

[System.Diagnostics.CodeAnalysis.SuppressMessage(
Expand Down Expand Up @@ -59,7 +59,7 @@ DefaultLocalizationPose defaultLocalizationPose
await context.DefaultLocalizationPoses.AddAsync(defaultLocalizationPose);
await context.SaveChangesAsync();

DetachTracking(defaultLocalizationPose);
DetachTracking(context, defaultLocalizationPose);
return defaultLocalizationPose;
}

Expand All @@ -69,7 +69,7 @@ DefaultLocalizationPose defaultLocalizationPose
{
var entry = context.Update(defaultLocalizationPose);
await context.SaveChangesAsync();
DetachTracking(defaultLocalizationPose);
DetachTracking(context, defaultLocalizationPose);
return entry.Entity;
}

Expand All @@ -88,7 +88,7 @@ DefaultLocalizationPose defaultLocalizationPose
return defaultLocalizationPose;
}

public void DetachTracking(DefaultLocalizationPose defaultLocalizationPose)
public void DetachTracking(FlotillaDbContext context, DefaultLocalizationPose defaultLocalizationPose)
{
context.Entry(defaultLocalizationPose).State = EntityState.Detached;
}
Expand Down
20 changes: 10 additions & 10 deletions backend/api/Services/InspectionAreaService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public Task<IEnumerable<InspectionArea>> ReadByInstallation(

public Task<InspectionArea?> Delete(string id);

public void DetachTracking(InspectionArea inspectionArea);
public void DetachTracking(FlotillaDbContext context, InspectionArea inspectionArea);
}

[SuppressMessage(
Expand Down Expand Up @@ -194,7 +194,7 @@ await plantService.ReadByInstallationAndPlantCode(
inspectionArea.Installation,
new InspectionAreaResponse(inspectionArea)
);
DetachTracking(inspectionArea);
DetachTracking(context, inspectionArea);
return inspectionArea!;
}

Expand All @@ -207,7 +207,7 @@ public async Task<InspectionArea> Update(InspectionArea inspectionArea)
inspectionArea.Installation,
new InspectionAreaResponse(inspectionArea)
);
DetachTracking(inspectionArea);
DetachTracking(context, inspectionArea);
return entry.Entity;
}

Expand Down Expand Up @@ -264,14 +264,14 @@ private async Task ApplyDatabaseUpdate(Installation? installation)
);
}

public void DetachTracking(InspectionArea inspectionArea)
public void DetachTracking(FlotillaDbContext context, InspectionArea inspectionArea)
{
if (inspectionArea.Installation != null)
installationService.DetachTracking(inspectionArea.Installation);
if (inspectionArea.Plant != null)
plantService.DetachTracking(inspectionArea.Plant);
if (inspectionArea.DefaultLocalizationPose != null)
defaultLocalizationPoseService.DetachTracking(
if (inspectionArea.Installation != null && context.Entry(inspectionArea.Installation).State != EntityState.Detached)
installationService.DetachTracking(context, inspectionArea.Installation);
if (inspectionArea.Plant != null && context.Entry(inspectionArea.Plant).State != EntityState.Detached)
plantService.DetachTracking(context, inspectionArea.Plant);
if (inspectionArea.DefaultLocalizationPose != null && context.Entry(inspectionArea.DefaultLocalizationPose).State != EntityState.Detached)
defaultLocalizationPoseService.DetachTracking(context,
inspectionArea.DefaultLocalizationPose
);
context.Entry(inspectionArea).State = EntityState.Detached;
Expand Down
4 changes: 2 additions & 2 deletions backend/api/Services/InspectionService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ private async Task Update(Inspection inspection)
var installation = missionRun?.InspectionArea?.Installation;

await ApplyDatabaseUpdate(installation);
DetachTracking(inspection);
DetachTracking(context, inspection);
}

public async Task<Inspection?> ReadByIsarTaskId(string id, bool readOnly = true)
Expand Down Expand Up @@ -227,7 +227,7 @@ await response.Content.ReadFromJsonAsync<IDAInspectionDataResponse>()
return null;
}

public void DetachTracking(Inspection inspection)
public void DetachTracking(FlotillaDbContext context, Inspection inspection)
{
foreach (var inspectionFinding in inspection.InspectionFindings)
{
Expand Down
8 changes: 4 additions & 4 deletions backend/api/Services/InstallationService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public interface IInstallationService

public abstract Task<Installation?> Delete(string id);

public void DetachTracking(Installation installation);
public void DetachTracking(FlotillaDbContext context, Installation installation);
}

[System.Diagnostics.CodeAnalysis.SuppressMessage(
Expand Down Expand Up @@ -109,7 +109,7 @@ public async Task<Installation> Create(CreateInstallationQuery newInstallationQu
};
await context.Installations.AddAsync(installation);
await ApplyUnprotectedDatabaseUpdate();
DetachTracking(installation);
DetachTracking(context, installation);
}

return installation;
Expand All @@ -119,7 +119,7 @@ public async Task<Installation> Update(Installation installation)
{
var entry = context.Update(installation);
await ApplyDatabaseUpdate(installation);
DetachTracking(installation);
DetachTracking(context, installation);
return entry.Entity;
}

Expand All @@ -137,7 +137,7 @@ public async Task<Installation> Update(Installation installation)
return installation;
}

public void DetachTracking(Installation installation)
public void DetachTracking(FlotillaDbContext context, Installation installation)
{
context.Entry(installation).State = EntityState.Detached;
}
Expand Down
12 changes: 6 additions & 6 deletions backend/api/Services/MissionDefinitionService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ string missionDefinitionId

public Task<MissionDefinition?> Delete(string id);

public void DetachTracking(MissionDefinition missionDefinition);
public void DetachTracking(FlotillaDbContext context, MissionDefinition missionDefinition);
}

[SuppressMessage(
Expand Down Expand Up @@ -84,7 +84,7 @@ public async Task<MissionDefinition> Create(MissionDefinition missionDefinition)
missionDefinition.InspectionArea?.Installation,
new MissionDefinitionResponse(missionDefinition)
);
DetachTracking(missionDefinition);
DetachTracking(context, missionDefinition);
return missionDefinition;
}

Expand Down Expand Up @@ -192,7 +192,7 @@ public async Task<MissionDefinition> Update(MissionDefinition missionDefinition)
missionDefinition?.InspectionArea?.Installation,
missionDefinition != null ? new MissionDefinitionResponse(missionDefinition) : null
);
DetachTracking(missionDefinition!);
DetachTracking(context, missionDefinition!);
return entry.Entity;
}

Expand Down Expand Up @@ -328,12 +328,12 @@ parameters.InstallationCode is null
);
}

public void DetachTracking(MissionDefinition missionDefinition)
public void DetachTracking(FlotillaDbContext context, MissionDefinition missionDefinition)
{
if (missionDefinition.LastSuccessfulRun != null)
missionRunService.DetachTracking(missionDefinition.LastSuccessfulRun);
missionRunService.DetachTracking(context, missionDefinition.LastSuccessfulRun);
if (missionDefinition.Source != null)
sourceService.DetachTracking(missionDefinition.Source);
sourceService.DetachTracking(context, missionDefinition.Source);
context.Entry(missionDefinition).State = EntityState.Detached;
}
}
Expand Down
21 changes: 11 additions & 10 deletions backend/api/Services/MissionRunService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ string failureDescription

public Task UpdateCurrentRobotMissionToFailed(string robotId);

public void DetachTracking(MissionRun missionRun);
public void DetachTracking(FlotillaDbContext context, MissionRun missionRun);
}

[SuppressMessage(
Expand Down Expand Up @@ -143,7 +143,7 @@ public async Task<MissionRun> Create(
new MissionRunResponse(missionRun)
);

DetachTracking(missionRun);
DetachTracking(context, missionRun);

if (triggerCreatedMissionRunEvent)
{
Expand Down Expand Up @@ -311,7 +311,7 @@ public async Task<MissionRun> Update(MissionRun missionRun)
missionRun?.InspectionArea?.Installation,
missionRun != null ? new MissionRunResponse(missionRun) : null
);
DetachTracking(missionRun!);
DetachTracking(context, missionRun!);
return entry.Entity;
}

Expand Down Expand Up @@ -773,17 +773,18 @@ await ReadById(missionRunId, readOnly: true)
return await Update(missionRun);
}

public void DetachTracking(MissionRun missionRun)
public void DetachTracking(FlotillaDbContext context, MissionRun missionRun)
{
context.Entry(missionRun).State = EntityState.Detached;
foreach (var task in missionRun.Tasks)
{
missionTaskService.DetachTracking(task);
if (context.Entry(task).State != EntityState.Detached)
missionTaskService.DetachTracking(context, task);
}
if (missionRun.InspectionArea != null)
inspectionAreaService.DetachTracking(missionRun.InspectionArea);
if (missionRun.Robot != null)
robotService.DetachTracking(missionRun.Robot);
context.Entry(missionRun).State = EntityState.Detached;
if (missionRun.InspectionArea != null && context.Entry(missionRun.InspectionArea).State != EntityState.Detached)
inspectionAreaService.DetachTracking(context, missionRun.InspectionArea); // TODO: seemingly did nothing
if (missionRun.Robot != null && context.Entry(missionRun.Robot).State != EntityState.Detached) // TODO: have check if it's tracked. then enter
robotService.DetachTracking(context, missionRun.Robot); // This didn't do anything
}

public async Task<MissionRun> UpdateWithIsarInfo(
Expand Down
6 changes: 3 additions & 3 deletions backend/api/Services/MissionTaskService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public Task<MissionTask> UpdateMissionTaskStatus(
IsarTaskStatus isarTaskStatus
);

public void DetachTracking(MissionTask missionTask);
public void DetachTracking(FlotillaDbContext context, MissionTask missionTask);
}

[SuppressMessage(
Expand Down Expand Up @@ -49,7 +49,7 @@ private async Task<MissionTask> Update(MissionTask missionTask)

var entry = context.Update(missionTask);
await context.SaveChangesAsync();
DetachTracking(missionTask);
DetachTracking(context, missionTask);
return entry.Entity;
}

Expand All @@ -72,7 +72,7 @@ private IQueryable<MissionTask> GetMissionTasks(bool readOnly = true)
);
}

public void DetachTracking(MissionTask missionTask)
public void DetachTracking(FlotillaDbContext context, MissionTask missionTask)
{
context.Entry(missionTask).State = EntityState.Detached;
}
Expand Down
10 changes: 5 additions & 5 deletions backend/api/Services/PlantService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public Task<IEnumerable<Plant>> ReadByInstallation(

public Task<Plant?> Delete(string id);

public void DetachTracking(Plant plant);
public void DetachTracking(FlotillaDbContext context, Plant plant);
}

[SuppressMessage(
Expand Down Expand Up @@ -158,7 +158,7 @@ await installationService.ReadByInstallationCode(
context.Entry(plant.Installation).State = EntityState.Unchanged;
await context.Plants.AddAsync(plant);
await ApplyDatabaseUpdate(plant.Installation);
DetachTracking(plant);
DetachTracking(context, plant);
}
return plant!;
}
Expand All @@ -167,7 +167,7 @@ public async Task<Plant> Update(Plant plant)
{
var entry = context.Update(plant);
await ApplyDatabaseUpdate(plant.Installation);
DetachTracking(plant);
DetachTracking(context, plant);
return entry.Entity;
}

Expand Down Expand Up @@ -215,10 +215,10 @@ private async Task ApplyDatabaseUpdate(Installation? installation)
);
}

public void DetachTracking(Plant plant)
public void DetachTracking(FlotillaDbContext context, Plant plant)
{
if (plant.Installation != null)
installationService.DetachTracking(plant.Installation);
installationService.DetachTracking(context, plant.Installation);
context.Entry(plant).State = EntityState.Detached;
}
}
Expand Down
Loading

0 comments on commit 12e8575

Please sign in to comment.