/// <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)); } }
/// <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)); }
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)); }