diff --git a/Marco.Pms.Services/Controllers/AuthController.cs b/Marco.Pms.Services/Controllers/AuthController.cs
index 44390d8..8bba876 100644
--- a/Marco.Pms.Services/Controllers/AuthController.cs
+++ b/Marco.Pms.Services/Controllers/AuthController.cs
@@ -239,8 +239,17 @@ namespace MarcoBMS.Services.Controllers
}
else
{
+ var oldFCMToken = exsistingFCMMapping.FcmToken;
exsistingFCMMapping.FcmToken = loginDto.FcmToken;
_logger.LogInfo("Updating FCM Token for employee {EmployeeId}", emp.Id);
+ _ = Task.Run(async () =>
+ {
+ // --- Push Notification Section ---
+ // This section attempts to send a test push notification to the user's device.
+ // It's designed to fail gracefully and handle invalid Firebase Cloud Messaging (FCM) tokens.
+ await _firebase.SendLoginOnAnotherDeviceMessageAsync(oldFCMToken);
+
+ });
}
try
{
diff --git a/Marco.Pms.Services/Service/ExpensesService.cs b/Marco.Pms.Services/Service/ExpensesService.cs
index cfcac91..8a907d4 100644
--- a/Marco.Pms.Services/Service/ExpensesService.cs
+++ b/Marco.Pms.Services/Service/ExpensesService.cs
@@ -596,6 +596,9 @@ namespace Marco.Pms.Services.Service
/// An ApiResponse containing the updated expense details or an error.
public async Task> ChangeStatusAsync(ExpenseRecordDto model, Employee loggedInEmployee, Guid tenantId)
{
+ using var scope = _serviceScopeFactory.CreateScope();
+ var _firebase = scope.ServiceProvider.GetRequiredService();
+
// 1. Fetch Existing Expense with Related Entities (Single Query)
var expense = await _context.Expenses
.Include(e => e.ExpensesType)
@@ -670,7 +673,6 @@ namespace Marco.Pms.Services.Service
}
else if (requiredPermissions.Any())
{
- using var scope = _serviceScopeFactory.CreateScope();
var permissionService = scope.ServiceProvider.GetRequiredService();
foreach (var permission in requiredPermissions)
{
@@ -753,6 +755,18 @@ namespace Marco.Pms.Services.Service
return ApiResponse