using RobotNet10.FleetManager.Services.TrafficControl.Models; namespace RobotNet10.FleetManager.Services.TrafficControl.Services; /// /// Service for managing active robot routes storage /// public class RouteStorageService : IRouteStorageService { // In-memory storage for active routes private readonly Dictionary _activeRoutes = []; private readonly Lock _routesLock = new(); public Task> GetAllActiveRoutesAsync() { lock (_routesLock) { return Task.FromResult(new Dictionary(_activeRoutes)); } } public Task GetRobotRouteAsync(string robotId) { lock (_routesLock) { _activeRoutes.TryGetValue(robotId, out var route); return Task.FromResult(route); } } public Task UpdateRobotRouteAsync(string robotId, RobotRoute route) { try { lock (_routesLock) { _activeRoutes[robotId] = route; } return Task.FromResult(true); } catch (Exception) { return Task.FromResult(false); } } }