public async Task <PublishBulkResponseApiModel> BulkPublishValuesAsync(
            string endpointId, [FromBody][Required] PublishBulkRequestApiModel request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            var requestModel = request.ToServiceModel();
            var resultModel  = await _publisher.NodePublishBulkAsync(endpointId, requestModel);

            var nodesToAddErrors = resultModel.NodesToAdd == null
                ? 0
                : resultModel.NodesToAdd.Count(el => el.Value?.StatusCode == (uint)HttpStatusCode.NotFound);
            var nodesToRemoveErrors = resultModel.NodesToRemove == null
                ? 0
                : resultModel.NodesToRemove.Count(el => el.Value?.StatusCode == (uint)HttpStatusCode.NotFound);

            if ((nodesToAddErrors + nodesToRemoveErrors) > 0)
            {
                Response.StatusCode = 404;
            }

            var result = resultModel.ToApiModel();

            return(result);
        }
        public async Task <PublishBulkResponseApiModel> BulkPublishValuesAsync(
            string endpointId, [FromBody][Required] PublishBulkRequestApiModel request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            var result = await _publisher.NodePublishBulkAsync(
                endpointId, request.ToServiceModel());

            return(result.ToApiModel());
        }
예제 #3
0
        /// <inheritdoc/>
        public async Task <PublishBulkResponseApiModel> NodePublishBulkAsync(string endpointId,
                                                                             PublishBulkRequestApiModel content, CancellationToken ct = default)
        {
            if (string.IsNullOrEmpty(endpointId))
            {
                throw new ArgumentNullException(nameof(endpointId));
            }
            if (content == null)
            {
                throw new ArgumentNullException(nameof(content));
            }
            var request = _httpClient.NewRequest($"{_serviceUri}/v2/publish/{endpointId}/bulk",
                                                 Resource.Platform);

            _serializer.SerializeToRequest(request, content);
            var response = await _httpClient.PostAsync(request, ct).ConfigureAwait(false);

            response.Validate();
            return(_serializer.DeserializeResponse <PublishBulkResponseApiModel>(response));
        }