/// <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);
            }
        }
Exemple #2
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 Task <ValidateTasksResult> ValidateTasksAsync(ApiSession apiSession, string projectPath, CancellationToken cancellationToken)
        {
            if (apiSession == null)
            {
                throw new ArgumentNullException(nameof(apiSession));
            }

            if (string.IsNullOrWhiteSpace(projectPath))
            {
                throw new ArgumentException("projectPath is empty", nameof(projectPath));
            }

            return(Wrapped(async(token) =>
            {
                var request = new ValidateTasksRequestDto
                {
                    SpaceName = apiSession.SpaceName,
                    ProjectPath = projectPath
                };
                var apiResult = await _lowLevelApiClient.ValidateTasksAsync(apiSession, request, token);
                return MapOrFail(apiResult, (dto) => ValidateTasksResponseMapper.MapFromDto(dto));
            }, cancellationToken, OperationType.ShortOperation));
        }