/// <summary> /// Get IotConnect Base URL. /// </summary> /// <param name="discoveryURL">IotConnect Discovery URL</param> /// <param name="environment">IotConnect Environment</param> /// <param name="solutionKey">IotConnect Solution Unique Key</param> /// <param name="urlType">IotConnect Base URL Types (Auth, User, Device, Telemetry)</param> /// <returns></returns> public async Task <string> GetIoTConnectBaseURL(string discoveryURL, string environment, string solutionKey, IoTConnectBaseURLType urlType) { string response = string.Empty; if (_ioTConnectAPIEndPoints == null) { _ioTConnectAPIEndPoints = new List <IoTConnectAPIEndPointResult>(); } var ioTConnectEndpoints = _ioTConnectAPIEndPoints .Where(x => string.Equals(x.SolutionKey, solutionKey, StringComparison.OrdinalIgnoreCase) && string.Equals(x.Environment, environment, StringComparison.OrdinalIgnoreCase)) .Select(x => x.IoTConnectEndpoints).FirstOrDefault(); if (ioTConnectEndpoints != null) { response = Convert.ToString(ioTConnectEndpoints.GetPropertyValue(urlType.ToString())); } if (string.IsNullOrWhiteSpace(response)) { var discoveryDetail = await GetAPIEndPoints(discoveryURL, environment, solutionKey); if (discoveryDetail != null) { IoTConnectAPIEndPointResult data = new IoTConnectAPIEndPointResult { SolutionKey = solutionKey, Environment = environment, IoTConnectEndpoints = discoveryDetail.IoTConnectEndpoints }; _ioTConnectAPIEndPoints.Add(data); response = Convert.ToString(discoveryDetail.IoTConnectEndpoints.GetPropertyValue(urlType.ToString())); } } if (!string.IsNullOrWhiteSpace(response)) { return(response); } else { //Business.CustomErrorMessage($"No IoTConnect API Discovery URL found for IoTConnectBaseURLType:{urlType}"); } return(null); }
/// <summary> /// Get IotConnect Portal Url. /// </summary> /// <param name="environmentCode">IoTConnect Environment Code</param> /// <param name="solutionKey">IotConnect Solution Unique Key</param> /// <param name="baseUrlType">IotConnect Base URL Types (Auth, User, Device, Telemetry)</param> /// <returns></returns> public async Task <string> GetPortalUrl(string environmentCode, string solutionKey, IoTConnectBaseURLType baseUrlType) { var url = await GetIoTConnectBaseURL(Constants.discoveryUrl, environmentCode, solutionKey, baseUrlType); return(url?.Replace("api/v1.1", "")); }