/// <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;
        }
Пример #2
0
        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);
        }
Пример #3
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 });
        }