PageRenderTime 45ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/front-end/TennisCourt/TennisCourt/HomePage.xaml.cs

https://bitbucket.org/KingsleyChung/tenniscourt
C# | 226 lines | 199 code | 23 blank | 4 comment | 34 complexity | 79bab37dfefa913f8a2046fda7f59221 MD5 | raw file
Possible License(s): BSD-3-Clause, Apache-2.0, 0BSD, JSON, BSD-2-Clause, MIT
  1. using Newtonsoft.Json.Linq;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Net.Http;
  7. using System.Runtime.InteropServices.WindowsRuntime;
  8. using Windows.Foundation;
  9. using Windows.Foundation.Collections;
  10. using Windows.UI.Popups;
  11. using Windows.UI.Xaml;
  12. using Windows.UI.Xaml.Controls;
  13. using Windows.UI.Xaml.Controls.Primitives;
  14. using Windows.UI.Xaml.Data;
  15. using Windows.UI.Xaml.Input;
  16. using Windows.UI.Xaml.Media;
  17. using Windows.UI.Xaml.Navigation;
  18. // “空白页”项模板在 http://go.microsoft.com/fwlink/?LinkId=234238 上有介绍
  19. namespace myTransfer
  20. {
  21. public class StatusConverter : IValueConverter
  22. {
  23. object IValueConverter.Convert(object value, Type targetType, object parameter, string language)
  24. {
  25. string res = "";
  26. string s = (string)value;
  27. if (s == "1") res = "准备中";
  28. else if (s == "0") res = "进行中";
  29. else res = "已结束";
  30. return res;
  31. }
  32. object IValueConverter.ConvertBack(object value, Type targetType, object parameter, string language)
  33. {
  34. throw new NotImplementedException();
  35. }
  36. }
  37. public class CategoriesConverter : IValueConverter
  38. {
  39. object IValueConverter.Convert(object value, Type targetType, object parameter, string language)
  40. {
  41. string res = "";
  42. string s = (string)value;
  43. if (s[0] == '1') res += "男单 ";
  44. if (s[1] == '1') res += "女单 ";
  45. if (s[2] == '1') res += "男双 ";
  46. if (s[3] == '1') res += "女双 ";
  47. if (s[4] == '1') res += "混双 ";
  48. return res;
  49. }
  50. object IValueConverter.ConvertBack(object value, Type targetType, object parameter, string language)
  51. {
  52. throw new NotImplementedException();
  53. }
  54. }
  55. public class TotalConverter : IValueConverter
  56. {
  57. object IValueConverter.Convert(object value, Type targetType, object parameter, string language)
  58. {
  59. string res = "";
  60. int num = (int)value;
  61. res = "Game " + num.ToString();
  62. return res;
  63. }
  64. object IValueConverter.ConvertBack(object value, Type targetType, object parameter, string language)
  65. {
  66. throw new NotImplementedException();
  67. }
  68. }
  69. public class Flag1Converter : IValueConverter
  70. {
  71. object IValueConverter.Convert(object value, Type targetType, object parameter, string language)
  72. {
  73. string s = (string)value;
  74. if (s == "1") return 1.0;
  75. else return 0.0;
  76. }
  77. object IValueConverter.ConvertBack(object value, Type targetType, object parameter, string language)
  78. {
  79. throw new NotImplementedException();
  80. }
  81. }
  82. public class Flag2Converter : IValueConverter
  83. {
  84. object IValueConverter.Convert(object value, Type targetType, object parameter, string language)
  85. {
  86. string s = (string)value;
  87. if (s == "1") return 0.0;
  88. else return 1.0;
  89. }
  90. object IValueConverter.ConvertBack(object value, Type targetType, object parameter, string language)
  91. {
  92. throw new NotImplementedException();
  93. }
  94. }
  95. public class ButtonConverter : IValueConverter
  96. {
  97. object IValueConverter.Convert(object value, Type targetType, object parameter, string language)
  98. {
  99. string s = (string)value;
  100. if (s == "1") return true;
  101. else return false;
  102. }
  103. object IValueConverter.ConvertBack(object value, Type targetType, object parameter, string language)
  104. {
  105. throw new NotImplementedException();
  106. }
  107. }
  108. }
  109. namespace TennisCourt
  110. {
  111. /// <summary>
  112. /// 可用于自身或导航至 Frame 内部的空白页。
  113. /// </summary>
  114. public sealed partial class HomePage : Page
  115. {
  116. ViewModels.MatchesViewModel ViewModel { get; set; }
  117. public HomePage()
  118. {
  119. this.InitializeComponent();
  120. this.ViewModel = new ViewModels.MatchesViewModel();
  121. DispatcherTimer time = new DispatcherTimer();
  122. time.Interval = new TimeSpan(0, 0, 5);
  123. time.Tick += Time_Tick;
  124. time.Start();
  125. DispatcherTimer time1 = new DispatcherTimer();
  126. time1.Interval = new TimeSpan(0, 0, 3);
  127. time1.Tick += User_Reload;
  128. time1.Start();
  129. }
  130. protected override void OnNavigatedTo(NavigationEventArgs e)
  131. {
  132. reload();
  133. }
  134. private async void reload()
  135. {
  136. while (ViewModel.AllSpecialSets.Count > 0)
  137. {
  138. ViewModel.AllSpecialSets.RemoveAt(0);
  139. }
  140. using (HttpClient client = new HttpClient())
  141. {
  142. try
  143. {
  144. HttpResponseMessage response = await client.GetAsync("http://www.zhengweimumu.cn:3000/returngame");
  145. if (response.EnsureSuccessStatusCode().StatusCode.ToString().ToLower() == "ok")
  146. {
  147. string responseBody = await response.Content.ReadAsStringAsync();
  148. var gameinfo = JObject.Parse(responseBody);
  149. if ((string)gameinfo["ok"] != "0")
  150. {
  151. var allgame = (JArray)gameinfo["games"];
  152. for (int i = 0; i < allgame.Count; i++)
  153. {
  154. var setId = (string)allgame[i]["matchId"];
  155. var player1 = (string)allgame[i]["player1"];
  156. var player2 = (string)allgame[i]["player2"];
  157. var cata = (string)allgame[i]["catagory"];
  158. var ump = (string)allgame[i]["umpire"];
  159. var line = (string)allgame[i]["lineman"];
  160. var res = (string)allgame[i]["result"];
  161. var cour = (string)allgame[i]["court"];
  162. var rou = (string)allgame[i]["round"];
  163. var status = (string)allgame[i]["status"];
  164. var dd = (string)allgame[i]["date"];
  165. var date = Convert.ToDateTime(dd);
  166. var d1 = (string)allgame[i]["startTime"];
  167. var date1 = Convert.ToDateTime(d1);
  168. var date2 = date1;
  169. var d2 = (string)allgame[i]["endTime"];
  170. if (d2 != "") date2 = Convert.ToDateTime(d2);
  171. List<string> score = new List<string>();
  172. ViewModel.AddSpecialGame(setId, player1, player2, cata, ump, line, date, date1, date2, cour, rou, res, score, status);
  173. }
  174. }
  175. }
  176. }
  177. catch (HttpRequestException ex)
  178. {
  179. await new MessageDialog(ex.Message).ShowAsync();
  180. }
  181. }
  182. }
  183. private void User_Reload(object sender, object e)
  184. {
  185. reload();
  186. }
  187. private void Time_Tick(object sender, object e)
  188. {
  189. int i = PhotoGallery.SelectedIndex;
  190. i++;
  191. if (i >= PhotoGallery.Items.Count)
  192. {
  193. i = 0;
  194. }
  195. PhotoGallery.SelectedIndex = i;
  196. }
  197. private void MatchOverview_ItemClick(object sender, ItemClickEventArgs e)
  198. {
  199. ViewModel.SelectSpecialSet = (Models.Games)(e.ClickedItem);
  200. Frame.Navigate(typeof(UserDetailPage), ViewModel);
  201. }
  202. }
  203. }