예제 #1
0
        /// <summary>
        /// Gets all open milestones for the repository.
        /// </summary>
        /// <remarks>
        /// http://developer.github.com/v3/issues/milestones/#list-milestones-for-a-repository
        /// </remarks>
        /// <param name="owner">The owner of the repository</param>
        /// <param name="name">The name of the repository</param>
        /// <param name="request">Used to filter and sort the list of Milestones returned</param>
        /// <returns></returns>
        public Task<IReadOnlyList<Milestone>> GetAllForRepository(string owner, string name, MilestoneRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
            Ensure.ArgumentNotNullOrEmptyString(name, "name");
            Ensure.ArgumentNotNull(request, "request");

            return GetAllForRepository(owner, name, request, ApiOptions.None);
        }
예제 #2
0
        /// <summary>
        /// Gets all open milestones for the repository.
        /// </summary>
        /// <remarks>
        /// http://developer.github.com/v3/issues/milestones/#list-milestones-for-a-repository
        /// </remarks>
        /// <param name="owner">The owner of the repository</param>
        /// <param name="name">The name of the repository</param>
        /// <param name="request">Used to filter and sort the list of Milestones returned</param>
        /// <returns></returns>
        public Task<IReadOnlyList<Milestone>> GetForRepository(string owner, string name, MilestoneRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
            Ensure.ArgumentNotNullOrEmptyString(name, "name");
            Ensure.ArgumentNotNull(request, "request");

            return ApiConnection.GetAll<Milestone>(ApiUrls.Milestones(owner, name),
                request.ToParametersDictionary());
        }
예제 #3
0
        public void ReturnsDefaultValuesForDefaultRequest()
        {
            var request = new MilestoneRequest();

            var parameters = request.ToParametersDictionary();

            Assert.Equal("open", parameters["state"]);
            Assert.Equal("due_date", parameters["sort"]);
            Assert.Equal("asc", parameters["direction"]);
        }
예제 #4
0
        public void ContainsSetValues()
        {
            var request = new MilestoneRequest
            {
                State = ItemState.Closed,
                SortProperty = MilestoneSort.Completeness,
                SortDirection = SortDirection.Descending,
            };

            var parameters = request.ToParametersDictionary();

            Assert.Equal("closed", parameters["state"]);
            Assert.Equal("completeness", parameters["sort"]);
            Assert.Equal("desc", parameters["direction"]);
        }
예제 #5
0
 public async Task<IReadOnlyList<Milestone>> GetAllMilestones()
 {
     var request = new MilestoneRequest();
     request.State = ItemState.All;
     request.SortProperty = MilestoneSort.DueDate;
     request.SortDirection = SortDirection.Descending;
     try
     {
         return await _github.Issue.Milestone.GetAllForRepository(_organization, _repository, request);
     }
     catch (Exception ex)
     {
         Console.WriteLine("Failed to get milestones for repository, {0}", ex.Message);
     }
     return new List<Milestone>();
 }
예제 #6
0
        /// <summary>
        /// Gets all open milestones for the repository.
        /// </summary>
        /// <remarks>
        /// http://developer.github.com/v3/issues/milestones/#list-milestones-for-a-repository
        /// </remarks>
        /// <param name="owner">The owner of the repository</param>
        /// <param name="name">The name of the repository</param>
        /// <param name="request">Used to filter and sort the list of Milestones returned</param>
        /// <returns></returns>
        public Task <IReadOnlyList <Milestone> > GetAllForRepository(string owner, string name, MilestoneRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
            Ensure.ArgumentNotNullOrEmptyString(name, "name");
            Ensure.ArgumentNotNull(request, "request");

            return(ApiConnection.GetAll <Milestone>(ApiUrls.Milestones(owner, name),
                                                    request.ToParametersDictionary()));
        }
예제 #7
0
        public Task <IReadOnlyList <Milestone> > GetAllForRepository(long repositoryId, MilestoneRequest request, ApiOptions options)
        {
            Ensure.ArgumentNotNull(request, nameof(request));
            Ensure.ArgumentNotNull(options, nameof(options));

            return(ApiConnection.GetAll <Milestone>(ApiUrls.Milestones(repositoryId),
                                                    request.ToParametersDictionary(), options));
        }
예제 #8
0
        public Task <IReadOnlyList <Milestone> > GetAllForRepository(string owner, string name, MilestoneRequest request, ApiOptions options)
        {
            Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
            Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
            Ensure.ArgumentNotNull(request, nameof(request));
            Ensure.ArgumentNotNull(options, nameof(options));

            return(ApiConnection.GetAll <Milestone>(ApiUrls.Milestones(owner, name),
                                                    request.ToParametersDictionary(), options));
        }
예제 #9
0
        public Task <IReadOnlyList <Milestone> > GetAllForRepository(long repositoryId, MilestoneRequest request)
        {
            Ensure.ArgumentNotNull(request, nameof(request));

            return(GetAllForRepository(repositoryId, request, ApiOptions.None));
        }
예제 #10
0
        public Task <IReadOnlyList <Milestone> > GetAllForRepository(string owner, string name, MilestoneRequest request)
        {
            Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
            Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(GetAllForRepository(owner, name, request, ApiOptions.None));
        }
예제 #11
0
        public override async void GetMilestones()
        {
            if (_gettingMilestones)
                return;

            _gettingMilestones = true;
            Milestones.Clear();
            Milestone = null;
            if (Repository != null && Repository.Repository != null)
            {
                Milestones.Add(AllMilestones);
                Milestones.Add(NoMilestone);
                var request = new MilestoneRequest();
                request.State = ItemState.Open;
                request.SortProperty = MilestoneSort.DueDate;
                request.SortDirection = SortDirection.Ascending;
                try
                {
                    var milestones = await _github.Issue.Milestone.GetAllForRepository(Repository.Repository.Owner.Login, Repository.Repository.Name, request);
                    foreach (var milestone in milestones)
                        Milestones.Add(milestone);

                    Milestone = AllMilestones;
                }
                catch (Exception exception)
                {
                    _log.Write(LogLevel.Warn, "Failed to get milestones for repository", exception);
                }
            }
            _gettingMilestones = false;
        }
    public async Task ReturnsDistinctResultsBasedOnStartPageParametrizedWithRepositoryId()
    {
        var milestone1 = new NewMilestone("milestone 1") { DueOn = DateTime.Now };
        var milestone2 = new NewMilestone("milestone 2") { DueOn = DateTime.Now.AddDays(1), State = ItemState.Closed };
        var milestone3 = new NewMilestone("milestone 3") { DueOn = DateTime.Now.AddDays(3), State = ItemState.Closed };
        await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone1);
        await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone2);
        await _milestonesClient.Create(_context.RepositoryOwner, _context.RepositoryName, milestone3);

        var milestoneRequest = new MilestoneRequest { State = ItemStateFilter.Closed };

        var startOptions = new ApiOptions
        {
            PageSize = 1,
            PageCount = 1
        };

        var firstPage = await _milestonesClient.GetAllForRepository(_context.Repository.Id, milestoneRequest, startOptions);

        var skipStartOptions = new ApiOptions
        {
            PageSize = 1,
            PageCount = 1,
            StartPage = 2
        };
        
        var secondPage = await _milestonesClient.GetAllForRepository(_context.Repository.Id, milestoneRequest, skipStartOptions);

        Assert.NotEqual(firstPage[0].Number, secondPage[0].Number);
    }
예제 #13
0
        /// <summary>
        /// Gets all open milestones for the repository.
        /// </summary>
        /// <remarks>
        /// http://developer.github.com/v3/issues/milestones/#list-milestones-for-a-repository
        /// </remarks>
        /// <param name="repositoryId">The Id of the repository</param>
        /// <param name="request">Used to filter and sort the list of Milestones returned</param>
        /// <param name="options">Options for changing the API response</param>
        /// <returns></returns>
        public Task<IReadOnlyList<Milestone>> GetAllForRepository(long repositoryId, MilestoneRequest request, ApiOptions options)
        {
            Ensure.ArgumentNotNull(request, "request");
            Ensure.ArgumentNotNull(options, "options");

            return ApiConnection.GetAll<Milestone>(ApiUrls.Milestones(repositoryId),
                request.ToParametersDictionary(), options);
        }
예제 #14
0
        /// <summary>
        /// Gets all open milestones for the repository.
        /// </summary>
        /// <remarks>
        /// http://developer.github.com/v3/issues/milestones/#list-milestones-for-a-repository
        /// </remarks>
        /// <param name="repositoryId">The Id of the repository</param>
        /// <param name="request">Used to filter and sort the list of Milestones returned</param>
        /// <returns></returns>
        public Task<IReadOnlyList<Milestone>> GetAllForRepository(long repositoryId, MilestoneRequest request)
        {
            Ensure.ArgumentNotNull(request, "request");

            return GetAllForRepository(repositoryId, request, ApiOptions.None);
        }