/// <summary>
        /// Removes a label from a ScraperTarget.
        /// </summary>
        /// <param name="label">the label of a ScraperTarget</param>
        /// <param name="scraperTargetResponse">a ScraperTarget of a owner</param>
        /// <returns>delete has been accepted</returns>
        public Task DeleteLabelAsync(Label label, ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));
            Arguments.CheckNotNull(label, nameof(label));

            return(DeleteLabelAsync(label.Id, scraperTargetResponse.Id));
        }
        /// <summary>
        /// Removes a owner from a ScraperTarget.
        /// </summary>
        /// <param name="owner">the owner of a scraperTarget</param>
        /// <param name="scraperTargetResponse">the ScraperTarget of a owner</param>
        /// <returns>async task</returns>
        public Task DeleteOwnerAsync(User owner, ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));
            Arguments.CheckNotNull(owner, nameof(owner));

            return(DeleteOwnerAsync(owner.Id, scraperTargetResponse.Id));
        }
        /// <summary>
        /// Add a ScraperTarget member.
        /// </summary>
        /// <param name="member">the member of a scraperTarget</param>
        /// <param name="scraperTargetResponse">the ScraperTarget of a member</param>
        /// <returns>created mapping</returns>
        public Task <ResourceMember> AddMemberAsync(User member, ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));
            Arguments.CheckNotNull(member, nameof(member));

            return(AddMemberAsync(member.Id, scraperTargetResponse.Id));
        }
        /// <summary>
        /// Add a ScraperTarget label.
        /// </summary>
        /// <param name="label">the label of a ScraperTarget</param>
        /// <param name="scraperTargetResponse">a ScraperTarget of a label</param>
        /// <returns>added label</returns>
        public async Task <Label> AddLabel(Label label, ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));
            Arguments.CheckNotNull(label, nameof(label));

            return(await AddLabel(label.Id, scraperTargetResponse.Id));
        }
        /// <summary>
        /// Removes a label from a ScraperTarget.
        /// </summary>
        /// <param name="label">the label of a ScraperTarget</param>
        /// <param name="scraperTargetResponse">a ScraperTarget of a owner</param>
        /// <returns>delete has been accepted</returns>
        public async Task DeleteLabel(Label label, ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));
            Arguments.CheckNotNull(label, nameof(label));

            await DeleteLabel(label.Id, scraperTargetResponse.Id);
        }
        /// <summary>
        /// Removes a owner from a ScraperTarget.
        /// </summary>
        /// <param name="owner">the owner of a scraperTarget</param>
        /// <param name="scraperTargetResponse">the ScraperTarget of a owner</param>
        /// <returns>async task</returns>
        public async Task DeleteOwner(User owner, ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));
            Arguments.CheckNotNull(owner, nameof(owner));

            await DeleteOwner(owner.Id, scraperTargetResponse.Id);
        }
        /// <summary>
        /// Add a ScraperTarget owner.
        /// </summary>
        /// <param name="owner">the owner of a ScraperTarget</param>
        /// <param name="scraperTargetResponse">the ScraperTarget of a owner</param>
        /// <returns>created mapping</returns>
        public async Task <ResourceOwner> AddOwner(User owner, ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));
            Arguments.CheckNotNull(owner, nameof(owner));

            return(await AddOwner(owner.Id, scraperTargetResponse.Id));
        }
Beispiel #8
0
        /// <summary>
        /// Removes a member from a ScraperTarget.
        /// </summary>
        /// <param name="member">the member of a ScraperTarget</param>
        /// <param name="scraperTargetResponse">the ScraperTarget of a member</param>
        /// <returns>async task</returns>
        public async Task DeleteMemberAsync(User member, ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));
            Arguments.CheckNotNull(member, nameof(member));

            await DeleteMemberAsync(member.Id, scraperTargetResponse.Id);
        }
        /// <summary>
        /// Clone a ScraperTarget.
        /// </summary>
        /// <param name="clonedName">name of cloned ScraperTarget</param>
        /// <param name="scraperTargetResponse">ScraperTarget to clone</param>
        /// <returns>cloned ScraperTarget</returns>
        public async Task <ScraperTargetResponse> CloneScraperTargetAsync(string clonedName,
                                                                          ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNonEmptyString(clonedName, nameof(clonedName));
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));

            var cloned = new ScraperTargetRequest(clonedName, scraperTargetResponse.Type, scraperTargetResponse.Url,
                                                  scraperTargetResponse.OrgID, scraperTargetResponse.BucketID);

            var created = await CreateScraperTargetAsync(cloned).ConfigureAwait(false);

            var labels = await GetLabelsAsync(scraperTargetResponse).ConfigureAwait(false);

            foreach (var label in labels)
            {
                await AddLabelAsync(label, created).ConfigureAwait(false);
            }

            return(created);
        }
        /// <summary>
        /// Clone a ScraperTarget.
        /// </summary>
        /// <param name="clonedName">name of cloned ScraperTarget</param>
        /// <param name="scraperTargetResponse">ScraperTarget to clone</param>
        /// <returns>cloned ScraperTarget</returns>
        public async Task <ScraperTargetResponse> CloneScraperTarget(string clonedName,
                                                                     ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNonEmptyString(clonedName, nameof(clonedName));
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));

            var cloned = new ScraperTargetRequest(clonedName, scraperTargetResponse.Type, scraperTargetResponse.Url,
                                                  scraperTargetResponse.OrgID, scraperTargetResponse.BucketID);

            return(await CreateScraperTarget(cloned).ContinueWith(created =>
            {
                //
                // Add labels
                //
                return GetLabels(scraperTargetResponse)
                .ContinueWith(labels => { return labels.Result.Select(label => AddLabel(label, created.Result)); })
                .ContinueWith(async tasks =>
                {
                    await Task.WhenAll(tasks.Result);
                    return created.Result;
                })
                .Unwrap();
            }).Unwrap());
        }
        /// <summary>
        /// Delete a ScraperTarget.
        /// </summary>
        /// <param name="scraperTargetResponse">ScraperTarget to delete</param>
        /// <returns>scraper target deleted</returns>
        public Task DeleteScraperTargetAsync(ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));

            return(DeleteScraperTargetAsync(scraperTargetResponse.Id));
        }
        /// <summary>
        /// Update a ScraperTarget.
        /// </summary>
        /// <param name="scraperTargetResponse">ScraperTarget update to apply</param>
        /// <returns>updated ScraperTarget</returns>
        public Task <ScraperTargetResponse> UpdateScraperTargetAsync(ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));

            return(UpdateScraperTargetAsync(scraperTargetResponse.Id, scraperTargetResponse));
        }
        /// <summary>
        /// List all labels of a ScraperTarget.
        /// </summary>
        /// <param name="scraperTargetResponse">a ScraperTarget of the labels</param>
        /// <returns>the List all labels of a ScraperTarget</returns>
        public Task <List <Label> > GetLabelsAsync(ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));

            return(GetLabelsAsync(scraperTargetResponse.Id));
        }
        /// <summary>
        /// List all owners of a ScraperTarget.
        /// </summary>
        /// <param name="scraperTargetResponse">ScraperTarget of the owners</param>
        /// <returns>the List all owners of a ScraperTarget</returns>
        public Task <List <ResourceOwner> > GetOwnersAsync(ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));

            return(GetOwnersAsync(scraperTargetResponse.Id));
        }
        /// <summary>
        /// Delete a ScraperTarget.
        /// </summary>
        /// <param name="scraperTargetResponse">ScraperTarget to delete</param>
        /// <returns>scraper target deleted</returns>
        public async Task DeleteScraperTarget(ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));

            await DeleteScraperTarget(scraperTargetResponse.Id);
        }
        /// <summary>
        /// List all members of a ScraperTarget.
        /// </summary>
        /// <param name="scraperTargetResponse">ScraperTarget of the members</param>
        /// <returns>the List all members of a ScraperTarget</returns>
        public async Task <List <ResourceMember> > GetMembers(ScraperTargetResponse scraperTargetResponse)
        {
            Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse));

            return(await GetMembers(scraperTargetResponse.Id));
        }