public async Task <Result <IReadOnlyList <Issue> > > ListIssues(ListIssuesParameters parameters) { var client = await _clientFactory.Create(); string projectId = await GetProjectId(client, parameters.Project); if (projectId == null) { return(Result.Fail <IReadOnlyList <Issue> >($"Project {parameters.Project} was not found")); } int?assigneeId = await GetUserId(client, parameters.AssignedToCurrentUser, parameters.Assignee); IssueState issueState = _mapper.Map(parameters.IssueState); var issues = await client.Issues.GetAsync(projectId, o => { o.AssigneeId = assigneeId; o.State = issueState; o.Labels = parameters.Labels; o.Filter = parameters.Filter; o.IssueIds = parameters.IssuesIds; }); return(Result.Ok <IReadOnlyList <Issue> >(issues.ToList())); }
public async Task ListIssues(ListIssuesParameters parameters) { var issueResult = await _gitLabFacade.ListIssues(parameters); if (issueResult.IsFailure) { _presenter.ShowError("Failed to retrieve issues", issueResult.Error); return; } var issues = issueResult.Value; if (issues.Count == 0) { _presenter.ShowSuccess($"No issues found in project {parameters.Project}"); return; } if (parameters.Output == OutputFormat.Rows) { _presenter.ShowRows( $"Found ({issues.Count}) issues in project {parameters.Project}", issues.Select(i => new Row(new[] { $"{ConsoleOutputColor.Yellow}#{i.Id}", "Author", "Created" }, new[] { i.Title, i.Author, i.CreatedAt.ToString(CultureInfo.CurrentUICulture), }, i.Description)). ToArray()); } else if (parameters.Output == OutputFormat.Grid) { _presenter.ShowGrid( $"Found ({issues.Count}) issues in project {parameters.Project}", new GridColumn("Issue Id", 20, issues.Select(s => "#" + s.Id.ToString())), new GridColumn("Title", 100, issues.Select(s => s.Title)), new GridColumn("Description", 100, issues.Select(s => s.Description))); } else { throw new NotSupportedException($"OutputFormat {parameters.Output} is not supported"); } }
public async Task <Result <IReadOnlyList <Issue> > > ListIssues(ListIssuesParameters parameters) => _mapper.Map(await SafeGetResult(() => _issuesFacade.ListIssues(parameters)));