private static Uri GetModelServiceUri(string uri) { if (string.IsNullOrEmpty(uri)) { IDiscoveryService discoveryService = DiscoveryServiceProvider.Instance.ServiceClient; ContentServiceCapability contentService = discoveryService.CreateQuery <ContentServiceCapability>().Take(1).FirstOrDefault(); if (contentService == null) { throw new ModelServiceException("Content Service Capability not found in Discovery Service."); } ContentKeyValuePair modelServiceExtensionProperty = contentService.ExtensionProperties .FirstOrDefault( xp => xp.Key.Equals(ModelServiceExtensionPropertyName, StringComparison.OrdinalIgnoreCase)); if (modelServiceExtensionProperty == null) { throw new ModelServiceException( $"{ModelServiceName} is not registered; no extension property called '{ModelServiceExtensionPropertyName}' found on Content Service Capability."); } uri = modelServiceExtensionProperty.Value ?? string.Empty; } uri = uri.TrimEnd('/') + '/'; Uri baseUri; if (!Uri.TryCreate(uri, UriKind.Absolute, out baseUri)) { throw new ModelServiceException($"{ModelServiceName} is using an invalid uri '{uri}'."); } Logger.Debug($"{ModelServiceName} found at URL '{baseUri}'."); return(baseUri); }
private static Uri GetModelServiceUri() { IDiscoveryService discoveryService = DiscoveryServiceProvider.Instance.ServiceClient; ContentServiceCapability contentService = discoveryService.CreateQuery <ContentServiceCapability>().Take(1).FirstOrDefault(); if (contentService == null) { throw new DxaException("Content Service Capability not found in Discovery Service."); } ContentKeyValuePair modelServiceExtensionProperty = contentService.ExtensionProperties .FirstOrDefault(xp => xp.Key.Equals(ModelServiceExtensionPropertyName, StringComparison.OrdinalIgnoreCase)); if (modelServiceExtensionProperty == null) { throw new DxaException($"{ModelServiceName} is not registered; no extension property called '{ModelServiceExtensionPropertyName}' found on Content Service Capability."); } return(new Uri(modelServiceExtensionProperty.Value)); }