Пример #1
0
        protected static async Task <string> internalGetAuthNonceAsync(HttpClient httpClient, CancellationToken cancellationToken)
        {
            var url = "auth/nonce";

            using (var response = await httpClient.PostAsync(url, JsonSerializationHelper.SerializeAsStringContent(new GenerateNonceRequestDto()), cancellationToken))
            {
                var dto = await HandleResponse <GenerateNonceResponseDto>(response);

                return(dto.Nonce);
            }
        }
Пример #2
0
        protected static async Task <string> internalAuthExternalWindowAsync(HttpClient httpClient, string spaceName, string serverNonce, CancellationToken cancellationToken)
        {
            var url        = "auth/external/windows";
            var requestDto = new WindowsExternalLoginRequestDto
            {
                RequestToken = serverNonce,
                SpaceName    = spaceName
            };

            using (var response = await httpClient.PostAsync(url, JsonSerializationHelper.SerializeAsStringContent(requestDto), cancellationToken))
            {
                var responseDto = await HandleResponse <LoginResponseDto>(response);

                return(responseDto.Token);
            }
        }
Пример #3
0
        protected async Task <string> internalAuthLoginAsync(string clientNonce, string serverNonce, string spaceName, string passwordHash, CancellationToken cancellationToken)
        {
            var url        = "auth/login";
            var requestDto = new LoginRequestDto
            {
                ClientSeed   = clientNonce,
                Password     = passwordHash,
                Provider     = "Space",
                UserName     = spaceName,
                RequestToken = serverNonce
            };

            using (var response = await GetHttpClient().PostAsync(url, JsonSerializationHelper.SerializeAsStringContent(requestDto), cancellationToken))
            {
                var responseDto = await HandleResponse <LoginResponseDto>(response);

                return(responseDto.Token);
            }
        }
Пример #4
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));
            }
        }
Пример #5
0
        /// <summary>
        /// Validate tasks. Checks that there are no missing parameters in the tasks.
        /// </summary>
        /// <param name="apiSession">api session</param>
        /// <param name="projectPath">project path like /path/to/project.morph </param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <ValidateTasksResult> ValidateTasksAsync(ApiSession apiSession, string projectPath, CancellationToken cancellationToken)
        {
            if (apiSession == null)
            {
                throw new ArgumentNullException(nameof(apiSession));
            }

            if (string.IsNullOrWhiteSpace(projectPath))
            {
                throw new ArgumentException(nameof(projectPath));
            }
            var spaceName = apiSession.SpaceName;
            var url       = "commands/validatetasks";
            var request   = new ValidateTasksRequestDto
            {
                SpaceName   = spaceName,
                ProjectPath = projectPath
            };

            using (var response = await GetHttpClient().SendAsync(BuildHttpRequestMessage(HttpMethod.Post, url, JsonSerializationHelper.SerializeAsStringContent(request), apiSession), cancellationToken))
            {
                var dto = await HandleResponse <ValidateTasksResponseDto>(response);

                var entity = ValidateTasksResponseMapper.MapFromDto(dto);
                return(entity);
            }
        }