public override async Task SetBalance(ProperHttpClient client) { if (accessToken == null || tokenExpires < DateTime.Now) { var refreshParams = new Dictionary <string, string>() { { "grant_type", "refresh_token" }, { "client_id", ClientId }, { "client_secret", ClientSecret }, { "refresh_token", Token }, { "version_no", ClientVersion } }; // Saņem jaunu sesijas kodu. var oauth = await client.PostAsync <OAuthToken>("https://app.zeltazivtina.lv/thin/rest/Auth", new HttpFormUrlEncodedContent(refreshParams)); if (oauth == null) { return; } System.Diagnostics.Debug.WriteLine("ZZ access token " + oauth.access_token); SetTokens(oauth); } var request = new HttpRequestMessage(HttpMethod.Get, new Uri("https://app.zeltazivtina.lv/thin/rest/getsummaryinfo")); request.Headers.Authorization = new HttpCredentialsHeaderValue("bearer", accessToken); var info = await client.SendAsync <ZZBalance>(request); if (info == null) { return; } this.Balance = new AccountBalance(info.Balance, info.BalanceExpirationDate); var balances = new List <IBalance>(4); if (info.AddonSecondsBalance.HasValue) { balances.Add(new VoiceBalance(TimeSpan.FromSeconds(info.AddonSecondsBalance.Value), info.AddonSecondsBalanceExpirationDate.Value)); } if (info.AddonSmsBalanceExpirationDate.HasValue) { balances.Add(new SmsBalance(info.AddonSmsBalance.HasValue ? info.AddonSmsBalance.Value:int.MaxValue, info.AddonSmsBalanceExpirationDate.Value)); } if (info.DataUsedToday != 0) { balances.Add(new DataBalance(info.DataUsedToday, DateTime.Today.AddSeconds(23 * 60 * 60 + 59 * 60 + 59), false)); } else if (info.AddonDataBalance.HasValue) { balances.Add(new DataBalance(info.AddonDataBalance.Value, info.AddonDataBalanceExpirationDate.Value, true)); } if (info.PricePlanList[0].ID != 102 && info.PricePlanList[0].ValidUntil.HasValue) { balances.Add(new PriceBalance(info.PricePlanList[0].Name, info.PricePlanList[0].ValidUntil.Value)); } this.Balances = balances; this.RefreshDate = DateTime.Now; Settings.PutAccountBalances(this); UpdateTile(); }
private static async Task <BiteResponse <TResult> > CallService <TResult>(ProperHttpClient client, int requestLength, object request) { var sb = new StringBuilder(requestLength); StringWriter sw = new StringWriter(sb); using (JsonTextWriter jsonWriter = new JsonTextWriter(sw)) client.Serializer.Serialize(jsonWriter, request); string json = sw.ToString(); System.Diagnostics.Debug.WriteLine(json); var content = new HttpStringContent(json); content.Headers.ContentType = new HttpMediaTypeHeaderValue("application/json"); var httpRequest = new HttpRequestMessage(HttpMethod.Post, new Uri("https://213.226.139.54/prest/android.json")); httpRequest.Content = content; var response = await client.SendAsync <BiteResponse <TResult> >(httpRequest); if (response != null && response.error != null) { System.Diagnostics.Debug.WriteLine("Bite error message: " + response.error.message); throw new Exception(response.error.message); } return(response); }