public void SerializeContestTest() { var contestList = ContestList.FromXml <ContestList>(this.GetContestText()); var xmlRootOverride = new XmlRootAttribute("Contests"); string contestXml = ContestList.Serialize( contestList, xmlRootOverride); Assert.AreEqual(this.GetContestText(), contestXml, contestXml); var contest = new Contest(); contest.Id = 1; contest.Name = "King"; contest.VoteFor = 2; var newList = new ContestList(); newList.Add(contest); contestXml = ContestList.Serialize(newList, xmlRootOverride); Assert.IsNotNull(contestXml); }
private async Task Query() { ContentDialog msg = new ContentDialog(); msg.Title = "Request to codeforces..."; msg.Content = new ProgressRing() { IsActive = true, HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch }; msg.ShowAsync(); DateTime now = DateTime.UtcNow; DateTime old = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); list.Clear(); HttpClient httpClient = new HttpClient(); Uri request; try { request = new Uri("https://codeforces.com/api/contest.list?"); } catch (Exception ex) { msg.Hide(); await new MessageDialog(string.Format("{0}", ex.Message)).ShowAsync(); return; } HttpResponseMessage httpResponse = new HttpResponseMessage(); string httpResponseBody = ""; try { httpResponse = await httpClient.GetAsync(request); httpResponse.EnsureSuccessStatusCode(); httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); } catch (Exception ex) { msg.Hide(); await new MessageDialog(string.Format("{0}", ex.Message)).ShowAsync(); return; } JsonObject jobject = new JsonObject(); JsonArray result = new JsonArray(); try { jobject = JsonObject.Parse(httpResponseBody); result = jobject["result"].GetArray(); } catch (Exception ex) { msg.Hide(); await new MessageDialog(string.Format("{0}", ex.Message)).ShowAsync(); return; } foreach (JsonValue i in result) { Contest contest = JsonConvert.DeserializeObject <Contest>(i.ToString()); if (now <= old.AddSeconds(contest.startTimeSeconds + contest.durationSeconds)) { contest.startDate = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).AddSeconds(contest.startTimeSeconds); contest.startDate = contest.startDate.ToLocalTime(); contest.startDate_str = contest.startDate.ToString("MM dd HH:mm"); mys.Push(contest); } else { break; } } while (mys.Count != 0) { Contest contest = mys.Pop(); list.Add(contest); } msg.Hide(); if (list.Count == 0) { await new MessageDialog("No Contest Available") { Title = "-_-...." }.ShowAsync(); } }