コード例 #1
0
    /// <summary>
    ///     Create a filter
    /// </summary>
    /// <param name="jiraClient">IFilterDomain to bind the extension method to</param>
    /// <param name="filter">Filter to create</param>
    /// <param name="cancellationToken">CancellationToken</param>
    /// <returns>Filter</returns>
    public static async Task <Filter> CreateAsync(this IFilterDomain jiraClient, Filter filter, CancellationToken cancellationToken = default)
    {
        if (filter == null)
        {
            throw new ArgumentNullException(nameof(filter));
        }

        var filterCopy = new Filter
        {
            Name        = filter.Name,
            Jql         = filter.Jql,
            Description = filter.Description,
            IsFavorite  = filter.IsFavorite
        };

        jiraClient.Behaviour.MakeCurrent();
        var filterUri = jiraClient.JiraRestUri.AppendSegments("filter");

        // Add the configurable expand values, if the value is not null or empty
        if (JiraConfig.ExpandGetFilter?.Length > 0)
        {
            filterUri = filterUri.ExtendQuery("expand", string.Join(",", JiraConfig.ExpandGetFilter));
        }

        var response = await filterUri.PostAsync <HttpResponse <Filter, Error> >(filterCopy, cancellationToken).ConfigureAwait(false);

        return(response.HandleErrors());
    }
コード例 #2
0
        /// <summary>
        ///     Delete filter
        ///     See: https://docs.atlassian.com/jira/REST/latest/#d2e1388
        /// </summary>
        /// <param name="jiraClient">IFilterDomain to bind the extension method to</param>
        /// <param name="filter">Filter to delete</param>
        /// <param name="cancellationToken">CancellationToken</param>
        public static async Task DeleteAsync(this IFilterDomain jiraClient, Filter filter, CancellationToken cancellationToken = default)
        {
            if (filter == null)
            {
                throw new ArgumentNullException(nameof(filter));
            }
            Log.Debug().WriteLine("Deleting filter {0}", filter.Id);

            jiraClient.Behaviour.MakeCurrent();
            var filterUri = jiraClient.JiraRestUri.AppendSegments("filter", filter.Id);

            var response = await filterUri.DeleteAsync <HttpResponse>(cancellationToken).ConfigureAwait(false);

            response.HandleStatusCode(HttpStatusCode.NoContent);
        }
コード例 #3
0
    /// <summary>
    ///     Get filter
    ///     See: https://docs.atlassian.com/jira/REST/latest/#d2e1388
    /// </summary>
    /// <param name="jiraClient">IFilterDomain to bind the extension method to</param>
    /// <param name="id">filter id</param>
    /// <param name="cancellationToken">CancellationToken</param>
    /// <returns>Filter</returns>
    public static async Task <Filter> GetAsync(this IFilterDomain jiraClient, long id, CancellationToken cancellationToken = default)
    {
        Log.Debug().WriteLine("Retrieving filter {0}", id);

        jiraClient.Behaviour.MakeCurrent();
        var filterUri = jiraClient.JiraRestUri.AppendSegments("filter", id);

        // Add the configurable expand values, if the value is not null or empty
        if (JiraConfig.ExpandGetFilter?.Length > 0)
        {
            filterUri = filterUri.ExtendQuery("expand", string.Join(",", JiraConfig.ExpandGetFilter));
        }

        var response = await filterUri.GetAsAsync <HttpResponse <Filter, Error> >(cancellationToken).ConfigureAwait(false);

        return(response.HandleErrors());
    }