/// <summary>
        /// Initializes a new instance of the <see cref="ContentManagementClient"/> class for managing content of the specified project.
        /// </summary>
        /// <param name="contentManagementOptions">The settings of the Kentico Cloud project.</param>
        public ContentManagementClient(ContentManagementOptions contentManagementOptions)
        {
            if (contentManagementOptions == null)
            {
                throw new ArgumentNullException(nameof(contentManagementOptions));
            }

            if (string.IsNullOrEmpty(contentManagementOptions.ProjectId))
            {
                throw new ArgumentException("Kentico Cloud project identifier is not specified.", nameof(contentManagementOptions.ProjectId));
            }

            if (!Guid.TryParse(contentManagementOptions.ProjectId, out Guid projectIdGuid))
            {
                throw new ArgumentException($"Provided string is not a valid project identifier ({contentManagementOptions.ProjectId}). Haven't you accidentally passed the API key instead of the project identifier?", nameof(contentManagementOptions.ProjectId));
            }

            if (string.IsNullOrEmpty(contentManagementOptions.ApiKey))
            {
                throw new ArgumentException("The API key is not specified.", nameof(contentManagementOptions.ApiKey));
            }

            _urlBuilder    = new EndpointUrlBuilder(contentManagementOptions);
            _actionInvoker = new ActionInvoker(new ContentManagementHttpClient(), new MessageCreator(contentManagementOptions.ApiKey));
            _modelProvider = contentManagementOptions.ModelProvider ?? new ModelProvider();
        }
Exemple #2
0
 internal EndpointUrlBuilder(ContentManagementOptions options)
 {
     _options = options;
 }