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));
        }