public async Task <Rate> Convert(Rate rat, ISegmentService segmentService) { #region [ variable ] decimal brl = 0; decimal cur = 0; decimal conv = 0; decimal value = 0; #endregion try { decimal segmentRate = await segmentService.GetSegmentRate(rat.Segment.Value); HttpResponseMessage response = await HttpClient.GetAsync(url); if (response.IsSuccessStatusCode) { string apiReturn = await response.Content.ReadAsStringAsync(); JObject fields = JObject.Parse(apiReturn); string strBrl = fields["rates"]["BRL"].ToString(); string strCur = fields["rates"][rat.Currency].ToString(); if (decimal.TryParse(strBrl, out brl)) { if (decimal.TryParse(strCur, out cur)) { conv = brl / cur; value = (rat.Qty.Value * conv) * (1 + (segmentRate / 100)); } } } } catch (Exception ex) { } rat.Value = string.Format("{0:C}", value); return(rat); }