public IHttpActionResult GetServiceInfo()
        {
            string className  = "ConfigController";
            string methodName = "GetServiceInfo";

            this.LogControllerStart(this.log, className, methodName);

            // Retrieve the API Version Info min, current, and max
            var minApiVersion     = this.serviceVersionInfo.GetMinVersion();
            var currentApiVersion = this.serviceVersionInfo.GetCurrentVersion();
            var maxApiVersion     = this.serviceVersionInfo.GetMaxVersion();

            // Convert them to strings paying attention to handling null cases. Note that currentApiVersion cannot be null.
            string        currentApiVersionString = currentApiVersion.ToString();
            List <string> validApiVersionsList    = this.serviceVersionInfo.EnumerateVersions(minApiVersion, maxApiVersion);
            string        validApiVersionsString  = (validApiVersionsList != null) ? string.Join(",", validApiVersionsList) : default(string);

            var response = new GetServiceInfoResponse
            {
                ServiceApiVersion     = currentApiVersionString,
                ServiceApiAllVersions = validApiVersionsString
            };

            string logEntry = $"ServiceApiVersion = {response.ServiceApiVersion}, ServiceApiAllVersions = {response.ServiceApiAllVersions}";

            this.LogControllerEnd(this.log, className, methodName, logEntry);
            return(this.Ok(response));
        }
Example #2
0
        public GetServiceInfoResponse GetServiceInfo(GetServiceInfoRequest request)
        {
            if (!(request?.Services?.Length > 0))
            {
                return(new GetServiceInfoResponse());
            }

            var results  = GetResultsAsync(request.Services);
            var response = new GetServiceInfoResponse
            {
                Services = results.Result
            };

            return(response);
        }
Example #3
0
        public async Task <GetServiceInfoResponse> GetServiceInfoAsync(GetServiceInfoRequest request)
        {
            if (!(request?.Services?.Length > 0))
            {
                return(new GetServiceInfoResponse());
            }

            var results = await GetResultsAsync(request.Services).ConfigureAwait(false);

            var response = new GetServiceInfoResponse
            {
                Services = results
            };

            return(response);
        }
Example #4
0
        /// <summary>
        /// Builds a service info response.
        /// </summary>
        /// <param name="serviceImplementation">
        /// The service implementation that will be returning the response.
        /// </param>
        /// <param name="dependency">
        /// The dependency that was provided to the service implementation on construction.
        /// </param>
        /// <param name="tenantIdStrategy">
        /// The tenant ID strategy.
        /// </param>
        /// <returns>
        /// A populated service info response.
        /// </returns>
        public static GetServiceInfoResponse Build(IMultitenantService serviceImplementation, IDependency dependency, ITenantIdentificationStrategy tenantIdStrategy)
        {
            object tenantId = null;
            bool success = tenantIdStrategy.TryIdentifyTenant(out tenantId);
            if (!success || tenantId == null)
            {
                tenantId = "[Default Tenant]";
            }

            var response = new GetServiceInfoResponse()
            {
                ServiceImplementationTypeName = serviceImplementation.GetType().Name,
                DependencyInstanceId = dependency.InstanceId,
                DependencyTypeName = dependency.GetType().Name,
                TenantId = tenantId.ToString()
            };
            return response;
        }
Example #5
0
        /// <summary>
        /// Builds a service info response.
        /// </summary>
        /// <param name="serviceImplementation">
        /// The service implementation that will be returning the response.
        /// </param>
        /// <param name="dependency">
        /// The dependency that was provided to the service implementation on construction.
        /// </param>
        /// <param name="tenantIdStrategy">
        /// The tenant ID strategy.
        /// </param>
        /// <returns>
        /// A populated service info response.
        /// </returns>
        public static GetServiceInfoResponse Build(IMultitenantService serviceImplementation, IDependency dependency, ITenantIdentificationStrategy tenantIdStrategy)
        {
            var success = tenantIdStrategy.TryIdentifyTenant(out object tenantId);

            if (!success || tenantId == null)
            {
                tenantId = "[Default Tenant]";
            }

            var response = new GetServiceInfoResponse()
            {
                ServiceImplementationTypeName = serviceImplementation.GetType().Name,
                DependencyInstanceId          = dependency.InstanceId,
                DependencyTypeName            = dependency.GetType().Name,
                TenantId = tenantId.ToString()
            };

            return(response);
        }
        public IHttpActionResult GetServiceInfo()
        {
            // Retrieve the API Version Info min, current, and max
            var minApiVersion     = this.serviceVersionInfo.GetMinVersion();
            var currentApiVersion = this.serviceVersionInfo.GetCurrentVersion();
            var maxApiVersion     = this.serviceVersionInfo.GetMaxVersion();

            // Convert them to strings paying attention to handling null cases. Note that currentApiVersion cannot be null.
            string        currentApiVersionString = currentApiVersion.ToString();
            List <string> validApiVersionsList    = this.serviceVersionInfo.EnumerateVersions(minApiVersion, maxApiVersion);
            string        validApiVersionsString  = (validApiVersionsList != null) ? string.Join(",", validApiVersionsList) : default(string);

            var response = new GetServiceInfoResponse
            {
                ServiceApiVersion     = currentApiVersionString,
                ServiceApiAllVersions = validApiVersionsString
            };

            return(this.Ok(response));
        }