/// <summary> /// Adds a request to run a test case XML file the queue of tasks to run. /// </summary> public int Add(TaskRequest item) { Task<SessionRunnerTaskInfo> parentTask = Task.Run(() => { var cancelTokenSource = new CancellationTokenSource(); var cancelToken = cancelTokenSource.Token; var taskInfo = new SessionRunnerTaskInfo(); taskInfo.Request = item; taskInfo.StartTime = DateTime.UtcNow; taskInfo.Username = item.Username; taskInfo.TeamName = item.TeamName; Task childTask = Task.Run(() => { StartSession(taskInfo); }, cancelToken); taskInfo.CancelTokenSource = cancelTokenSource; taskInfo.CurrentTask = childTask; return taskInfo; }); _currentTasks.Add(parentTask); return parentTask.Id; }
public int Start(TaskRequest item) { var client = new RestClient(_baseUrl); IRestRequest request = CreateRequest("start"); request.AddJsonBody(item); request.Method = Method.POST; IRestResponse response = client.Execute(request); return ParseOrDefault(response.Content, 0); }
public ActionResult Run(string filename) { var taskRequest = new TaskRequest() { Filename = filename, Username = _userContext.Username, TeamName = _userContext.TeamName, }; int taskId = _tasksClient.Start(taskRequest); return Json(new { taskId = taskId }); }