diff --git a/backend/LexBoxApi/GraphQL/ProjectMutations.cs b/backend/LexBoxApi/GraphQL/ProjectMutations.cs index c8370d960..b682e5703 100644 --- a/backend/LexBoxApi/GraphQL/ProjectMutations.cs +++ b/backend/LexBoxApi/GraphQL/ProjectMutations.cs @@ -406,6 +406,7 @@ public async Task> SoftDeleteProject( await dbContext.SaveChangesAsync(); await hgService.SoftDeleteRepo(projectCode, timestamp); projectService.InvalidateProjectConfidentialityCache(projectId); + projectService.InvalidateProjectCodeCache(projectCode); await transaction.CommitAsync(); return dbContext.Projects.Where(p => p.Id == projectId); diff --git a/backend/LexBoxApi/Services/ProjectService.cs b/backend/LexBoxApi/Services/ProjectService.cs index f32457958..21ec60f14 100644 --- a/backend/LexBoxApi/Services/ProjectService.cs +++ b/backend/LexBoxApi/Services/ProjectService.cs @@ -96,6 +96,12 @@ public async ValueTask LookupProjectId(string projectCode) return projectId; } + public void InvalidateProjectCodeCache(string projectCode) + { + try { memoryCache.Remove($"ProjectIdForCode:{projectCode}"); } + catch (Exception) { }; // Never allow this to throw + } + public async Task BackupProject(string code) { var exists = await dbContext.Projects.Where(p => p.Code == code)