/// <summary>
        ///Post service collection base.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        protected IActionResult Post(IVmOpenApiServiceCollectionInVersionBase request)
        {
            if (request == null)
            {
                ModelState.AddModelError("RequestIsNull", CoreMessages.OpenApi.RequestIsNull);
                return(new BadRequestObjectResult(ModelState));
            }
            // Validate the items
            if (!ModelState.IsValid)
            {
                return(new BadRequestObjectResult(ModelState));
            }

            // Get the base model for service collection
            request = request.VersionBase();

            // Check the item values from db and validate
            ValidateParameters(request, true);
            if (!ModelState.IsValid)
            {
                return(new BadRequestObjectResult(ModelState));
            }

            var result = serviceCollectionService.AddServiceCollection(request, Settings.AllowAnonymous, versionNumber);

            return(Ok(result));
        }
        /// <summary>
        /// Put service collection base.
        /// </summary>
        /// <param name="request"></param>
        /// <param name="id"></param>
        /// <param name="sourceId"></param>
        /// <returns></returns>
        protected IActionResult Put(IVmOpenApiServiceCollectionInVersionBase request, string id = null, string sourceId = null)
        {
            if (request == null)
            {
                ModelState.AddModelError("RequestIsNull", CoreMessages.OpenApi.RequestIsNull);
                return(new BadRequestObjectResult(ModelState));
            }

            if (id.IsNullOrEmpty() && sourceId.IsNullOrEmpty())
            {
                return(NotFound(new VmError()
                {
                    ErrorMessage = $"ServiceCollection with id '{id}' not found."
                }));
            }

            if (!string.IsNullOrEmpty(id))
            {
                Guid?serviceCollectionId = id.ParseToGuid();

                // check that service collection exists
                if (!serviceCollectionId.HasValue || !serviceCollectionService.ServiceCollectionExists(serviceCollectionId.Value))
                {
                    return(NotFound(new VmError()
                    {
                        ErrorMessage = $"Service collection with id '{id}' not found."
                    }));
                }

                if (request == null)
                {
                    ModelState.AddModelError("RequestIsNull", CoreMessages.OpenApi.RequestIsNull);
                    return(new BadRequestObjectResult(ModelState));
                }

                request.Id = serviceCollectionId;
            }

            // Validate the items
            if (!ModelState.IsValid)
            {
                return(new BadRequestObjectResult(ModelState));
            }

            // get the base model for service collection
            request = request.VersionBase();

            // Check the item values from db and validate
            ValidateParameters(request, sourceId: sourceId);
            if (!ModelState.IsValid)
            {
                return(new BadRequestObjectResult(ModelState));
            }

            return(Ok(serviceCollectionService.SaveServiceCollection(request, Settings.AllowAnonymous, versionNumber, sourceId)));
        }