mirror of
https://github.com/immense/Remotely.git
synced 2025-10-26 11:27:15 +00:00
Add FilterDevicesByOnlineStatus to AgentHubSessionCache.
This commit is contained in:
parent
402d5b020f
commit
65f61eec82
@ -123,7 +123,7 @@ namespace Remotely.Server.Components.Scripts
|
||||
|
||||
var filteredDevices = DataService.FilterDeviceIDsByUserPermission(deviceIds.ToArray(), User);
|
||||
|
||||
var onlineDevices = ServiceSessionCache.GetConnectionIdsByDeviceIds(filteredDevices);
|
||||
var onlineDevices = ServiceSessionCache.FilterDevicesByOnlineStatus(filteredDevices, true);
|
||||
|
||||
var scriptRun = new ScriptRun()
|
||||
{
|
||||
|
||||
@ -9,6 +9,8 @@ namespace Remotely.Server.Services
|
||||
public interface IAgentHubSessionCache
|
||||
{
|
||||
void AddOrUpdateByConnectionId(string connectionId, Device device);
|
||||
IEnumerable<string> FilterDevicesByOnlineStatus(IEnumerable<string> deviceIds, bool isOnline);
|
||||
|
||||
ICollection<Device> GetAllDevices();
|
||||
IEnumerable<string> GetConnectionIdsByDeviceIds(IEnumerable<string> deviceIds);
|
||||
bool TryGetByDeviceId(string deviceId, out Device device);
|
||||
@ -28,6 +30,18 @@ namespace Remotely.Server.Services
|
||||
_deviceIdToConnectionIdLookup.AddOrUpdate(device.ID, connectionId, (k, v) => connectionId);
|
||||
}
|
||||
|
||||
public IEnumerable<string> FilterDevicesByOnlineStatus(IEnumerable<string> deviceIds, bool isOnline)
|
||||
{
|
||||
foreach (var deviceId in deviceIds)
|
||||
{
|
||||
var result = TryGetConnectionId(deviceId, out _);
|
||||
if (result == isOnline)
|
||||
{
|
||||
yield return deviceId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ICollection<Device> GetAllDevices() => _connectionIdToDeviceLookup.Values;
|
||||
|
||||
public IEnumerable<string> GetConnectionIdsByDeviceIds(IEnumerable<string> deviceIds)
|
||||
|
||||
@ -85,7 +85,7 @@ namespace Remotely.Server.Services
|
||||
.Distinct()
|
||||
.ToArray();
|
||||
|
||||
var onlineDevices = _serviceSessionCache.GetConnectionIdsByDeviceIds(deviceIds);
|
||||
var onlineDevices = _serviceSessionCache.FilterDevicesByOnlineStatus(deviceIds, true);
|
||||
|
||||
if (schedule.RunOnNextConnect)
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user