/// <summary> /// Update source details. /// </summary> /// <param name="request">The request object containing the details to send. Required.</param> /// <param name="retryConfiguration">The retry configuration that will be used by to send this request. Optional.</param> /// <param name="cancellationToken">The cancellation token to cancel this operation. Optional.</param> /// <returns>A response object containing details about the completed operation</returns> public async Task <UpdateSourceResponse> UpdateSource(UpdateSourceRequest request, RetryConfiguration retryConfiguration = null, CancellationToken cancellationToken = default) { logger.Trace("Called updateSource"); Uri uri = new Uri(this.restClient.GetEndpoint(), System.IO.Path.Combine(basePathWithoutHost, "/sources/{sourceId}".Trim('/'))); HttpMethod method = new HttpMethod("Put"); HttpRequestMessage requestMessage = Converter.ToHttpRequestMessage(uri, method, request); requestMessage.Headers.Add("Accept", "application/json"); GenericRetrier retryingClient = Retrier.GetPreferredRetrier(retryConfiguration, this.retryConfiguration); HttpResponseMessage responseMessage; try { if (retryingClient != null) { responseMessage = await retryingClient.MakeRetryingCall(this.restClient.HttpSend, requestMessage, cancellationToken); } else { responseMessage = await this.restClient.HttpSend(requestMessage); } return(Converter.FromHttpResponseMessage <UpdateSourceResponse>(responseMessage)); } catch (Exception e) { logger.Error($"UpdateSource failed with error: {e.Message}"); throw; } }
public async Task <IActionResult> Produce(UpdateSourceRequest request) { var validatorActionResult = await _validationArrangement.Validate(request); var actionResult = await _operationArrangement.Process(request, validatorActionResult); return(actionResult); }
public async Task <IActionResult> Update([FromRoute] UpdateSourceFromRoute route, [FromQuery] UpdateSourceFromQuery query, [FromHeader] UpdateSourceFromHeader header) { string bodyAsString = await Request.GetRawBodyStringAsync(); var body = new UpdateSourceFromBody { Patch = bodyAsString }; var request = new UpdateSourceRequest(route, query, header, body); var result = await _apiResult.Produce(request); return(result); }
public UpdateSourceCommand Map(UpdateSourceRequest request) { var id = new Guid(request.RouteId); var valuePairs = _jsonProvider.ToDictionary(request.BodyPatch); Optional <string> name = valuePairs.GetOptional("name"); Optional <string> description = valuePairs.GetOptional("description"); Optional <IEnumerable <string> > sourceBusinessUnits = valuePairs.GetOptionalEnumerable("businessUnits"); var version = ToVersion(request.HeaderIfMatch); var result = new UpdateSourceCommand(id, name, description, sourceBusinessUnits, version); return(result); }
public async Task<IActionResult> Process(UpdateSourceRequest request, IValidatorActionResult validatorActionResult) { IActionResult actionResult; if (validatorActionResult.Result == null) { var call = _cqsMapper.Map(request); var result = await _mediator.Send(call); actionResult = result.IsFailure ? _apiResponse.Fail(result) : _apiResponse.Updated(result.Version.ToString()); } else { actionResult = validatorActionResult.Result; } return actionResult; }
protected override void ProcessRecord() { base.ProcessRecord(); UpdateSourceRequest request; try { request = new UpdateSourceRequest { SourceId = SourceId, UpdateSourceDetails = UpdateSourceDetails, OpcRequestId = OpcRequestId, IfMatch = IfMatch }; response = client.UpdateSource(request).GetAwaiter().GetResult(); WriteOutput(response, CreateWorkRequestObject(response.OpcWorkRequestId)); FinishProcessing(response); } catch (Exception ex) { TerminatingErrorDuringExecution(ex); } }