Ejemplo n.º 1
0
        /// <summary>
        /// Start Task like "fire and forget"
        /// </summary>
        /// <param name="apiSession">api session</param>
        /// <param name="taskId">tast guid</param>
        /// <param name="cancellationToken"></param>
        /// <param name="taskParameters"></param>
        /// <returns></returns>
        public async Task <RunningTaskStatus> StartTaskAsync(ApiSession apiSession, Guid taskId, CancellationToken cancellationToken, IEnumerable <TaskParameterBase> taskParameters = null)
        {
            if (apiSession == null)
            {
                throw new ArgumentNullException(nameof(apiSession));
            }

            var spaceName = apiSession.SpaceName;
            var url       = UrlHelper.JoinUrl("space", spaceName, "runningtasks", taskId.ToString("D"), "payload");
            var dto       = new TaskStartRequestDto();

            if (taskParameters != null)
            {
                dto.TaskParameters = taskParameters.Select(TaskParameterMapper.ToDto).ToList();
            }
            var request = JsonSerializationHelper.SerializeAsStringContent(dto);

            using (var response = await GetHttpClient().SendAsync(BuildHttpRequestMessage(HttpMethod.Post, url, request, apiSession), cancellationToken))
            {
                var info = await HandleResponse <RunningTaskStatusDto>(response);

                return(RunningTaskStatusMapper.RunningTaskStatusFromDto(info));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Start Task like "fire and forget"
        /// </summary>
        public Task <ComputationDetailedItem> StartTaskAsync(ApiSession apiSession, StartTaskRequest startTaskRequest, CancellationToken cancellationToken)
        {
            if (apiSession == null)
            {
                throw new ArgumentNullException(nameof(apiSession));
            }

            if (startTaskRequest == null)
            {
                throw new ArgumentNullException(nameof(startTaskRequest));
            }

            return(Wrapped(async(token) =>
            {
                var requestDto = new TaskStartRequestDto()
                {
                    TaskId = startTaskRequest.TaskId,
                    TaskParameters = startTaskRequest.TaskParameters?.Select(TaskParameterMapper.ToDto)?.ToList()
                };

                var apiResult = await _lowLevelApiClient.StartTaskAsync(apiSession, requestDto, token);
                return MapOrFail(apiResult, ComputationDetailedItemMapper.FromDto);
            }, cancellationToken, OperationType.ShortOperation));
        }
Ejemplo n.º 3
0
        public Task <ApiResult <ComputationDetailedItemDto> > StartTaskAsync(ApiSession apiSession, TaskStartRequestDto taskStartRequestDto, CancellationToken cancellationToken)
        {
            if (apiSession == null)
            {
                throw new ArgumentNullException(nameof(apiSession));
            }

            var spaceName = apiSession.SpaceName;
            var url       = UrlHelper.JoinUrl("space", spaceName, "computations", "start", "task");

            return(apiClient.PostAsync <TaskStartRequestDto, ComputationDetailedItemDto>(url, taskStartRequestDto, null, apiSession.ToHeadersCollection(), cancellationToken));
        }