added new function delete all employee entries from cache

This commit is contained in:
ashutosh.nehete 2025-07-17 16:38:39 +05:30
parent c6ba233e6d
commit 5b0e9ffb7c
2 changed files with 23 additions and 9 deletions

View File

@ -122,16 +122,10 @@ namespace Marco.Pms.CacheHelper
public async Task<bool> ClearAllProjectIdsByPermissionIdFromCache(Guid permissionId) public async Task<bool> ClearAllProjectIdsByPermissionIdFromCache(Guid permissionId)
{ {
var filter = Builders<EmployeePermissionMongoDB>.Filter.AnyEq(e => e.PermissionIds, permissionId.ToString()); var filter = Builders<EmployeePermissionMongoDB>.Filter.AnyEq(e => e.PermissionIds, permissionId.ToString());
var update = Builders<EmployeePermissionMongoDB>.Update.Set(e => e.ProjectIds, new List<string>());
var update = Builders<EmployeePermissionMongoDB>.Update var result = await _collection.UpdateManyAsync(filter, update).ConfigureAwait(false);
.Set(e => e.ProjectIds, new List<string>()); return result.IsAcknowledged && result.ModifiedCount > 0;
var result = await _collection.UpdateOneAsync(filter, update);
if (result.MatchedCount == 0)
return false;
return true;
} }
public async Task<bool> RemoveRoleIdFromCache(Guid employeeId, Guid roleId) public async Task<bool> RemoveRoleIdFromCache(Guid employeeId, Guid roleId)
{ {
@ -180,6 +174,15 @@ namespace Marco.Pms.CacheHelper
return true; return true;
} }
public async Task<bool> ClearAllEmployeesFromCache()
{
var result = await _collection.DeleteManyAsync(FilterDefinition<EmployeePermissionMongoDB>.Empty);
if (result.DeletedCount == 0)
return false;
return true;
}
// A private method to handle the one-time setup of the collection's indexes. // A private method to handle the one-time setup of the collection's indexes.
private async Task InitializeCollectionAsync() private async Task InitializeCollectionAsync()

View File

@ -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); _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 --------------------------------------- // ------------------------------------ Report Cache ---------------------------------------