public TriggerTaskAction(IMazeTaskManagerManagement management, ITaskDirectory taskDirectory, IConnectionManager connectionManager, ActiveTasksManager activeTasksManager, IServiceProvider serviceProvider) { _management = management; _taskDirectory = taskDirectory; _connectionManager = connectionManager; _activeTasksManager = activeTasksManager; _serviceProvider = serviceProvider; }
public async Task <IActionResult> UpdateMachineStatus([FromBody] IList <ClientTaskDto> tasks, [FromServices] ActiveTasksManager activeTasksManager) { if (User.IsAdministrator()) { return(BadRequest()); } var clientId = User.GetClientId(); var status = activeTasksManager.ActiveCommands.GetOrAdd(new TargetId(clientId), _ => new TasksMachineStatus()); status.Tasks = tasks.ToImmutableList(); return(Ok()); }
public OnClientDisconnected(ActiveTasksManager activeTasksManager) { _activeTasksManager = activeTasksManager; }
public async Task <IActionResult> CreateCommandProcess([FromBody] CommandProcessDto commandResultDto, [FromServices] ActiveTasksManager activeTasksManager) { var clientId = User.GetClientId(); var status = activeTasksManager.ActiveCommands.GetOrAdd(new TargetId(clientId), _ => new TasksMachineStatus()); status.Processes.AddOrUpdate(commandResultDto.CommandResultId, commandResultDto, (id, _) => commandResultDto); await _hubContext.Clients.All.SendAsync(HubEventNames.TaskCommandProcess, commandResultDto); return(Ok()); }
public async Task <IActionResult> CreateCommandResult([FromBody] CommandResultDto commandResultDto, [FromServices] ICreateTaskCommandResultAction action, [FromServices] ActiveTasksManager activeTasksManager) { if (activeTasksManager.ActiveCommands.TryGetValue(new TargetId(User.GetClientId()), out var status)) { status.Processes.TryRemove(commandResultDto.CommandResultId, out _); } await action.BizActionAsync(commandResultDto); return(await BizActionStatus(action, async() => { await _hubContext.Clients.All.SendAsync(HubEventNames.TaskCommandResultCreated, commandResultDto); return Ok(); })); }