public async Task <IActionResult> PostRelayInformationAsync([HttpTrigger(AuthorizationLevel.Function, "post", Route = "relay-management/")] HttpRequest req, ILogger log) { var requestBody = await new StreamReader(req.Body).ReadToEndAsync(); if (string.IsNullOrWhiteSpace(requestBody)) { throw new InvalidOperationException(nameof(requestBody)); } CreateRelayStorageDto createRelayDto = JsonConvert.DeserializeObject <CreateRelayStorageDto>(requestBody); HybridConnectionDto hybridConnectionDto = await _relayManagementService.StoreRelayAsync(createRelayDto); if (hybridConnectionDto != null) { var listenerDto = new ListenerDto() { HybridConnectionUrl = hybridConnectionDto.HybridConnectionUrl, ListenerPolicyName = hybridConnectionDto.PolicyDtos.FirstOrDefault(x => x.PolicyType == PolicyClaim.Listen).PolicyName, ListenerPolicyValue = hybridConnectionDto.PolicyDtos.FirstOrDefault(x => x.PolicyType == PolicyClaim.Listen).PolicyKey }; return(new OkObjectResult(listenerDto)); } else { return(new BadRequestResult()); } }
async Task <HybridConnectionDto> IRelayManagementService.StoreRelayAsync(CreateRelayStorageDto createRelayStorageDto) { HybridConnectionDto hybridConnectionDto = await _cloudProviderHandlerApiClient.CreateRelayHybridConnection(createRelayStorageDto.TenantId); if (hybridConnectionDto is null) { throw new InvalidOperationException(nameof(hybridConnectionDto)); } return(await _storageApiClient.StoreRelayAsync(createRelayStorageDto.TenantId, hybridConnectionDto)); }