/// <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(); }
internal ContentManagementClient(EndpointUrlBuilder urlBuilder, ActionInvoker actionInvoker, IModelProvider modelProvider = null) { _urlBuilder = urlBuilder ?? throw new ArgumentNullException(nameof(urlBuilder)); _actionInvoker = actionInvoker ?? throw new ArgumentNullException(nameof(actionInvoker)); _modelProvider = modelProvider ?? new ModelProvider(); }