Exemple #1
0
 public TriggerTaskAction(IMazeTaskManagerManagement management, ITaskDirectory taskDirectory, IConnectionManager connectionManager,
                          ActiveTasksManager activeTasksManager, IServiceProvider serviceProvider)
 {
     _management         = management;
     _taskDirectory      = taskDirectory;
     _connectionManager  = connectionManager;
     _activeTasksManager = activeTasksManager;
     _serviceProvider    = serviceProvider;
 }
Exemple #2
0
        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();
            }));
        }