PageRenderTime 46ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/Atlassian.Jira/Remote/IssuePriorityService.cs

https://bitbucket.org/farmas/atlassian.net-sdk
C# | 31 lines | 26 code | 5 blank | 0 comment | 1 complexity | e316d941ac01d6bebccfd07c62500f28 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using System.Threading;
  4. using System.Threading.Tasks;
  5. using RestSharp;
  6. namespace Atlassian.Jira.Remote
  7. {
  8. internal class IssuePriorityService : IIssuePriorityService
  9. {
  10. private readonly Jira _jira;
  11. public IssuePriorityService(Jira jira)
  12. {
  13. _jira = jira;
  14. }
  15. public async Task<IEnumerable<IssuePriority>> GetPrioritiesAsync(CancellationToken token = default(CancellationToken))
  16. {
  17. var cache = _jira.Cache;
  18. if (!cache.Priorities.Any())
  19. {
  20. var priorities = await _jira.RestClient.ExecuteRequestAsync<RemotePriority[]>(Method.GET, "rest/api/2/priority", null, token).ConfigureAwait(false);
  21. cache.Priorities.TryAdd(priorities.Select(p => new IssuePriority(p)));
  22. }
  23. return cache.Priorities.Values;
  24. }
  25. }
  26. }