public Task <GitRepoCollection> List(GitRepoQuery query) { var repoQuery = repoFolderProvider.GetDirectoryInfo().EnumerateDirectories(); if (query.Name != null) { repoQuery = repoQuery.Where(i => i.Name.Contains(query.Name, StringComparison.InvariantCultureIgnoreCase)); } var repos = repoQuery.OrderByDescending(i => i.LastWriteTime).ToList(); var results = repos.Skip(query.SkipTo(repos.Count)).Take(query.Limit).Select(i => GetGitRepoInfo(i)); return(Task.FromResult(new GitRepoCollection(query, repos.Count, results))); }
async Task List() { SetTestPath(); //This could be more complete var repo = mockup.Get <IGitRepoRepository>(); await repo.AddRange(new GitRepoInput[] { GitRepoTests.CreateInput("TestRepo1"), GitRepoTests.CreateInput("TestRepo2"), GitRepoTests.CreateInput("TestRepo3") }); var query = new GitRepoQuery(); var result = await repo.List(query); Assert.Equal(query.Limit, result.Limit); Assert.Equal(query.Offset, result.Offset); Assert.Equal(3, result.Total); Assert.NotEmpty(result.Items); }
async Task List() { SetTestPath(); var totalItems = 3; var controller = mockup.Get <GitReposController>(); for (var i = 0; i < totalItems; ++i) { Assert.NotNull(await controller.Add(GitRepoTests.CreateInput($"Repo{i}"))); } var query = new GitRepoQuery(); var result = await controller.List(query); Assert.Equal(query.Limit, result.Limit); Assert.Equal(query.Offset, result.Offset); Assert.Equal(3, result.Total); Assert.NotEmpty(result.Items); }
public async Task <GitRepoCollection> List([FromQuery] GitRepoQuery query) { return(await repo.List(query)); }