private async Task GetAsync() { StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync("Reports.json", CreationCollisionOption.OpenIfExists); string jsonString = await FileIO.ReadTextAsync(file, Windows.Storage.Streams.UnicodeEncoding.Utf8); if (jsonString == string.Empty) { HttpClient client = null; try { client = new HttpClient(); jsonString = await client.GetStringAsync("https://dl.dropboxusercontent.com/u/64185161/Reports.json"); if (jsonString != null && jsonString != string.Empty) { await FileIO.WriteTextAsync(file, jsonString); } } catch (Exception e) { await new MessageDialog(e.Message, "Get Reports Error").ShowAsync(); } finally { if (client != null) { client.Dispose(); } } } if (jsonString.Equals(string.Empty) && jsonString == null) { return; } DiagnosticReport report = new DiagnosticReport(); Reconnection reconnection = new Reconnection(); JsonObject jsonObject = JsonObject.Parse(jsonString); JsonObject ticketObject = jsonObject["ticket"].GetObject(); JsonArray reportArray = ticketObject["reports"].GetArray(); GetReports(report, reportArray); JsonObject reconnectionObject = ticketObject["reconnection"].GetObject(); GetReconnection(reconnection, reconnectionObject); this.repository.Reconnection = reconnection; this.repository.DiagnosticReport = report; }
private void GetReconnection(Reconnection reconnection, JsonObject jsonObject) { JsonArray jsonArray = jsonObject["languages"].GetArray(); foreach (JsonValue itemValue in jsonArray) { Language language = new Language(); JsonObject itemObject = itemValue.GetObject(); language.Id = (int)itemObject["id"].GetNumber(); language.Name = itemObject["language"].GetString(); language.Content = itemObject["content"].GetString(); reconnection.Items.Add(language); } }