public async Task <ActionResult <GeminiIssue> > GetGeminiIssueById( long issueId, [FromQuery] SingleIssueQueryParameter singleIssueQueryParameter) { var issue = await _geminiRepository.GetIssueAsync(issueId, singleIssueQueryParameter, CancellationToken.None).ConfigureAwait(false); if (issue == null) { return(NotFound()); } var item = _mapper.Map <GeminiIssue>(issue); item.IssueUri = _geminiUrlHelper.BuilIssuedUri(item); if (singleIssueQueryParameter.IncludeFields != true) { var fields = await _geminiRepository.GetCustomDetailsAsync(new List <decimal> { issueId }, CancellationToken.None).ConfigureAwait(false); var custom = fields.FirstOrDefault(); if (fields.Any() && custom.Value.Any(x => x.CustomFieldId == _geminiRepository.SprintCustomFieldId)) { var sprint = custom.Value.First(c => c.CustomFieldId == _geminiRepository.SprintCustomFieldId).NumericData; item.Sprint = sprint is not null ? decimal.ToInt32(sprint.Value).ToString(CultureInfo.InvariantCulture) : string.Empty; } } return(Ok(item)); }
public Task <GeminiIssueEntity?> GetIssueAsync(decimal issueId, SingleIssueQueryParameter singleIssueQueryParameter, CancellationToken token) { var json = JsonConvert.SerializeObject(_geminiIssueEntities.First()); var issue = JsonConvert.DeserializeObject <GeminiIssueEntity>(json); if (singleIssueQueryParameter.IncludeFields == true) { issue.CustomFields = _custom01; } if (singleIssueQueryParameter.IncludeHistory == true) { issue.HistoryItems = _history01; } return(Task.FromResult(issue)); }
public async Task <ActionResult <GeminiIssue> > GetGeminiIssueByCode( long projectId, string code, [FromQuery] SingleIssueQueryParameter singleIssueQueryParameter) { var issue = await _geminiRepository.GetIssueByCodeAsync(projectId, code, singleIssueQueryParameter, CancellationToken.None).ConfigureAwait(false); if (issue == null) { return(NotFound()); } var item = _mapper.Map <GeminiIssue>(issue); item.IssueUri = _geminiUrlHelper.BuilIssuedUri(item); return(Ok(item)); }
public Task <GeminiIssueEntity?> GetIssueByCodeAsync( decimal projectId, string issueCode, SingleIssueQueryParameter singleIssueQueryParameter, CancellationToken token) => GetIssueAsync(projectId, singleIssueQueryParameter, token);
public static bool HasIncludes(this SingleIssueQueryParameter singleIssueQueryParameter) => singleIssueQueryParameter.IncludeFields == true || singleIssueQueryParameter.IncludeHistory == true;