/// <inheritdoc /> public async Task <FullStubModel> GenerateStubBasedOnRequestAsync( string requestCorrelationId, bool doNotCreateStub) { _logger.LogDebug($"Creating stub based on request with corr.ID '{requestCorrelationId}'."); var requestResult = await _stubContext.GetRequestResultAsync(requestCorrelationId); if (requestResult == null) { throw new NotFoundException(nameof(RequestResultModel), requestCorrelationId); } var request = _mapper.Map <HttpRequestModel>(requestResult.RequestParameters); var stub = new StubModel { Conditions = await _httpRequestToConditionsService.ConvertToConditionsAsync(request), Response = { Text = "OK!" } }; // Generate an ID based on the created stub. var contents = JsonConvert.SerializeObject(stub); stub.EnsureStubId(); FullStubModel result; if (doNotCreateStub) { result = new FullStubModel { Stub = stub, Metadata = new StubMetadataModel() }; } else { await _stubContext.DeleteStubAsync(stub.Id); result = await _stubContext.AddStubAsync(stub); } _logger.LogInformation($"Stub with ID '{stub.Id}' generated!"); return(result); }
/// <inheritdoc /> public async Task <FullStubModel> GetStubAsync(string stubId) { FullStubModel result = null; foreach (var source in _stubSources) { var stub = await source.GetStubAsync(stubId); if (stub != null) { result = new FullStubModel { Stub = stub, Metadata = new StubMetadataModel { ReadOnly = source is not IWritableStubSource } }; break; } } return(result); }