diff --git a/backend/LexBoxApi/GraphQL/ProjectMutations.cs b/backend/LexBoxApi/GraphQL/ProjectMutations.cs index 717f28fb51..a6cd19a672 100644 --- a/backend/LexBoxApi/GraphQL/ProjectMutations.cs +++ b/backend/LexBoxApi/GraphQL/ProjectMutations.cs @@ -379,6 +379,7 @@ public async Task DeleteDraftProject( public async Task> SoftDeleteProject( Guid projectId, IPermissionService permissionService, + [Service] ProjectService projectService, LexBoxDbContext dbContext, IHgService hgService) { @@ -402,6 +403,7 @@ public async Task> SoftDeleteProject( using var transaction = await dbContext.Database.BeginTransactionAsync(); await dbContext.SaveChangesAsync(); await hgService.SoftDeleteRepo(projectCode, timestamp); + 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 a53c7b64b6..c934059a10 100644 --- a/backend/LexBoxApi/Services/ProjectService.cs +++ b/backend/LexBoxApi/Services/ProjectService.cs @@ -94,6 +94,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)