コード例 #1
0
        public async Task <IActionResult> GetTaskInfo(Guid taskId, [FromServices] ITaskDirectory taskDirectory, [FromServices] IMazeTaskManager taskManager, [FromServices] ITaskReferenceDbAccess dbAccess)
        {
            var tasks = await taskDirectory.LoadTasks();

            var task = tasks.FirstOrDefault(x => x.Id == taskId);

            if (task == null)
            {
                return(NotFound());
            }

            var localActiveTask = taskManager.LocalActiveTasks.FirstOrDefault(x => x.MazeTask.Id == taskId);

            var taskInfo = await dbAccess.GetTaskInfo(taskId);

            taskInfo.Name                = task.Name;
            taskInfo.Commands            = task.Commands.Count;
            taskInfo.IsCompletedOnServer = localActiveTask == null;
            taskInfo.NextExecution       = localActiveTask?.NextExecution;

            return(Ok(taskInfo));
        }
コード例 #2
0
ファイル: OnServerStartupEvent.cs プロジェクト: wrdg/Maze
 public OnServerStartupEvent(IMazeTaskManager mazeTaskManager, IOptions <TasksOptions> options)
 {
     _mazeTaskManager = mazeTaskManager;
     _options         = options.Value;
 }
コード例 #3
0
        public async Task <IActionResult> GetTasks([FromServices] ITaskDirectory taskDirectory, [FromServices] IMazeTaskManager taskManager, [FromServices] ITaskReferenceDbAccess dbAccess)
        {
            var tasks = await taskDirectory.LoadTasks();

            var taskInfos = await dbAccess.GetTasks();

            var infos = tasks.Select(x =>
            {
                var taskInfo        = taskInfos[x.Id];
                var localActiveTask = taskManager.LocalActiveTasks.FirstOrDefault(y => y.MazeTask.Id == x.Id);

                taskInfo.Name                = x.Name;
                taskInfo.Commands            = x.Commands.Count;
                taskInfo.IsCompletedOnServer = localActiveTask == null;
                taskInfo.NextExecution       = localActiveTask?.NextExecution;

                return(taskInfo);
            });

            return(Ok(infos));
        }
コード例 #4
0
ファイル: GetTaskSyncInfo.cs プロジェクト: 5l1v3r1/Maze-1
 public GetTaskSyncInfo(IMazeTaskManager mazeTaskManager, IServiceProvider services)
 {
     _mazeTaskManager = mazeTaskManager;
     _services        = services;
 }