示例#1
0
    /// <summary>
    /// Initializes a new instance of the <see cref="ManagementClient"/> class for managing content of the specified project.
    /// </summary>
    /// <param name="ManagementOptions">The settings of the Kontent project.</param>
    public ManagementClient(ManagementOptions ManagementOptions)
    {
        if (ManagementOptions == null)
        {
            throw new ArgumentNullException(nameof(ManagementOptions));
        }

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

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

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


        _urlBuilder    = new EndpointUrlBuilder(ManagementOptions);
        _actionInvoker = new ActionInvoker(
            new ManagementHttpClient(new DefaultResiliencePolicyProvider(ManagementOptions.MaxRetryAttempts), ManagementOptions.EnableResilienceLogic),
            new MessageCreator(ManagementOptions.ApiKey));
        _modelProvider = ManagementOptions.ModelProvider ?? new ModelProvider();
    }
示例#2
0
    public FileSystemFixture()
    {
        var managementOptions = new ManagementOptions()
        {
            ApiKey         = "Dummy_API_key",
            ProjectId      = PROJECT_ID,
            SubscriptionId = SUBCRIPTION_ID
        };

        _urlBuilder     = new EndpointUrlBuilder(managementOptions);
        _messageCreator = new MessageCreator(managementOptions.ApiKey);
    }
示例#3
0
        internal static ContentManagementClient CreateContentManagementClient(ContentManagementOptions options, TestRunType runType, string testName)
        {
            if (runType != TestRunType.LiveEndPoint)
            {
                var saveToFileSystem = runType == TestRunType.LiveEndPoint_SaveToFileSystem;
                var httpClient       = new FileSystemHttpClientMock(options, saveToFileSystem, testName);

                var urlBuilder    = new EndpointUrlBuilder(options);
                var actionInvoker = new ActionInvoker(httpClient, new MessageCreator(options.ApiKey));

                return(new ContentManagementClient(urlBuilder, actionInvoker));
            }

            return(new ContentManagementClient(options));
        }
示例#4
0
 internal ManagementClient(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();
 }
示例#5
0
 private string GetSubscriptionUrl(string path, params string[] parameters) => EndpointUrlBuilder.GetUrl(BuildSubscriptionUrl(), path, parameters);
示例#6
0
 private string GetProjectUrl(string path, params string[] parameters) => EndpointUrlBuilder.GetUrl(BuildProjectUrl(), path, parameters);
示例#7
0
 public EndpointUrlBuilderTests()
 {
     _builder = new EndpointUrlBuilder(OPTIONS);
 }