diff --git a/Marco.Pms.CacheHelper/EmployeeCache.cs b/Marco.Pms.CacheHelper/EmployeeCache.cs index 0079106..7c7f4b4 100644 --- a/Marco.Pms.CacheHelper/EmployeeCache.cs +++ b/Marco.Pms.CacheHelper/EmployeeCache.cs @@ -122,16 +122,10 @@ namespace Marco.Pms.CacheHelper public async Task ClearAllProjectIdsByPermissionIdFromCache(Guid permissionId) { var filter = Builders.Filter.AnyEq(e => e.PermissionIds, permissionId.ToString()); + var update = Builders.Update.Set(e => e.ProjectIds, new List()); - var update = Builders.Update - .Set(e => e.ProjectIds, new List()); - - var result = await _collection.UpdateOneAsync(filter, update); - - if (result.MatchedCount == 0) - return false; - - return true; + var result = await _collection.UpdateManyAsync(filter, update).ConfigureAwait(false); + return result.IsAcknowledged && result.ModifiedCount > 0; } public async Task RemoveRoleIdFromCache(Guid employeeId, Guid roleId) { @@ -180,6 +174,15 @@ namespace Marco.Pms.CacheHelper return true; } + public async Task ClearAllEmployeesFromCache() + { + var result = await _collection.DeleteManyAsync(FilterDefinition.Empty); + + if (result.DeletedCount == 0) + return false; + + return true; + } // A private method to handle the one-time setup of the collection's indexes. private async Task InitializeCollectionAsync() diff --git a/Marco.Pms.Services/Helpers/CacheUpdateHelper.cs b/Marco.Pms.Services/Helpers/CacheUpdateHelper.cs index b0b1e06..9bb159b 100644 --- a/Marco.Pms.Services/Helpers/CacheUpdateHelper.cs +++ b/Marco.Pms.Services/Helpers/CacheUpdateHelper.cs @@ -811,6 +811,17 @@ namespace Marco.Pms.Services.Helpers _logger.LogWarning("Error occured while deleting Application role {RoleId} from Cache for employee {EmployeeId}: {Error}", roleId, employeeId, ex.Message); } } + public async Task ClearAllEmployees() + { + try + { + var response = await _employeeCache.ClearAllEmployeesFromCache(); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error occured while deleting all employees from Cache"); + } + } // ------------------------------------ Report Cache ---------------------------------------