示例#1
0
        public async Task <PagedResultSet <IssueInfo> > GetIssuesByStakeholderPersonIdAsync(int personId, string filter, int pageNumber, int pageSize)
        {
            return(await ExecuteAsync(async client =>
            {
                var response = await client.GetAsync($"?View=Mine");
                if (response.IsSuccessStatusCode)
                {
                    var ideaString = await response.Content.ReadAsStringAsync();

                    string totalCountString = response.Headers.GetValues("X-Total-Count").FirstOrDefault();
                    int totalCount = 0;
                    if (!string.IsNullOrWhiteSpace(totalCountString))
                    {
                        int.TryParse(totalCountString, out totalCount);
                    }

                    var contractResolver = new IssueContractResolver();
                    var settings = new JsonSerializerSettings()
                    {
                        ContractResolver = contractResolver
                    };
                    var returnValues = JsonConvert.DeserializeObject <IEnumerable <IssueInfo> >(ideaString, settings).ToList();
                    return PagedResultSet.Create(returnValues, pageNumber, pageSize, totalCount);
                }
                else
                {
                    var ex = new InvalidOperationException($"Response from remote webservice did not indicate success ({response.StatusCode})");
                    ex.Data["HttpResponse"] = response;
                    throw ex;
                }
            }));
        }
示例#2
0
 public async Task <Issue> GetIssueAsync(int id)
 {
     return(await ExecuteAsync(async client =>
     {
         _logger.Information("Retrieving Issue from {Url}", client.BaseAddress + id.ToString());
         var ideaString = await client.GetStringAsync(id.ToString());
         _logger.Debug("Retrieved initative {IssueId} data: {Text}", id, ideaString);
         var contractResolver = new IssueContractResolver();
         var settings = new JsonSerializerSettings()
         {
             ContractResolver = contractResolver
         };
         return JsonConvert.DeserializeObject <Issue>(ideaString, settings);
     }));
 }