diff --git a/radiuscontroller.sln.DotSettings.user b/radiuscontroller.sln.DotSettings.user new file mode 100644 index 0000000..1475425 --- /dev/null +++ b/radiuscontroller.sln.DotSettings.user @@ -0,0 +1,2 @@ + + ForceIncluded \ No newline at end of file diff --git a/radiuscontroller/Services/RadiusService.cs b/radiuscontroller/Services/RadiusService.cs index 5c3822f..ac1bca5 100644 --- a/radiuscontroller/Services/RadiusService.cs +++ b/radiuscontroller/Services/RadiusService.cs @@ -164,13 +164,13 @@ public class RadiusService : IRadiusService public async Task> GetAllUsersWithUsageAsync() { - var profiles = await _db.GuestProfiles.OrderByDescending(p => p.CreatedAt).ToListAsync(); - var passwords = await _db.RadCheck + var profiles = await _db.GuestProfiles.AsNoTracking().OrderByDescending(p => p.CreatedAt).ToListAsync(); + var passwords = await _db.RadCheck.AsNoTracking() .Where(rc => rc.Attribute == "Cleartext-Password") .ToDictionaryAsync(rc => rc.Username, rc => rc.Value); // Group accounting data by username (for session time and connection status) - var acctStats = await _db.RadAcct + var acctStats = await _db.RadAcct.AsNoTracking() .GroupBy(ra => ra.Username) .Select(g => new { @@ -181,7 +181,7 @@ public class RadiusService : IRadiusService .ToDictionaryAsync(g => g.Username); // Fetch data usage from the new dedicated table - var dataUsage = await _db.GuestDataUsage.ToDictionaryAsync(du => du.Username); + var dataUsage = await _db.GuestDataUsage.AsNoTracking().ToDictionaryAsync(du => du.Username); var result = new List(); @@ -213,7 +213,7 @@ public class RadiusService : IRadiusService public async Task> GetActiveSessionsAsync() { - return await _db.RadAcct + return await _db.RadAcct.AsNoTracking() .Where(ra => ra.AcctStopTime == null) .OrderByDescending(ra => ra.AcctStartTime) .ToListAsync();