Esempio n. 1
0
        private async void ImportItem_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var item         = (MenuFlyoutItem)e.OriginalSource;
                var semester     = Semesters.Find(o => o.Name == item.Text);
                var tableCourses = await app.Assist.GetTableCourses(semester);

                Models.Add(await TimeTableHelper.GenerateTimeTableModel(tableCourses));

                app.TimeTablePage_Models = Models.ToList();
                app.TimeTables.Add(tableCourses);
                app.HomePage_Models = null;
                SaveTimeTables();
            }
            catch (Exception err)
            {
                var msgDialog = new CommonDialog(err.Message)
                {
                    Title = "错误",
                };

                await msgDialog.ShowAsyncQueue();
            }
        }
Esempio n. 2
0
        private async void FromOfflineShareCode_Click(object sender, RoutedEventArgs e)
        {
            var dialog = new InputDialog()
            {
                Title       = "请输入离线分享码",
                Placeholder = "离线分享码"
            };

            if ((await dialog.ShowAsyncQueue()) == ContentDialogResult.Primary)
            {
                try
                {
                    var tableCourses = JsonConvert.DeserializeObject <TableCourses>(dialog.Result);
                    Models.Add(await TimeTableHelper.GenerateTimeTableModel(tableCourses));

                    app.TimeTables.Add(tableCourses);
                    SaveTimeTables();
                }
                catch (Exception err)
                {
                    var msgDialog = new CommonDialog("分享码格式错误:\n" + err.Message)
                    {
                        Title = "错误",
                    };
                    await msgDialog.ShowAsyncQueue();
                }
            }
        }
Esempio n. 3
0
        public async Task TestGenerateTimeTableModel()
        {
            await LoginAssist();

            var table = await assist.GetTableCourses(assist.GetTableSemesters().Result[0]);

            var model = await TimeTableHelper.GenerateTimeTableModel(table);

            Assert.IsTrue(model.Weeks.Count > 15);
            Assert.IsTrue(model.Weeks[0].Items.Count > 0);
            Assert.IsTrue(model.Weeks[0].Items[0].Name.Length > 0);
        }
Esempio n. 4
0
        private async void LoadTimeTables()
        {
            try
            {
                TimeTableProgressBar.Visibility = Visibility.Visible;

                if (app.TimeTables == null)
                {
                    Debug.WriteLine("Started: Load Timetable");
                    Windows.Storage.StorageFolder storageFolder =
                        Windows.Storage.ApplicationData.Current.LocalFolder;
                    Windows.Storage.StorageFile file =
                        await storageFolder.GetFileAsync("timetable.txt");

                    string text = await Windows.Storage.FileIO.ReadTextAsync(file);

                    app.TimeTables = JsonConvert.DeserializeObject <List <TableCourses> >(text);
                    Debug.WriteLine("Finished: Load Timetable");
                }

                if (app.TimeTablePage_Models == null)
                {
                    foreach (var table in app.TimeTables)
                    {
                        Models.Add(await TimeTableHelper.GenerateTimeTableModel(table));
                    }
                    app.TimeTablePage_Models = Models.ToList();
                }
                else
                {
                    foreach (var item in app.TimeTablePage_Models)
                    {
                        Models.Add(item);
                    }
                }
            }
            catch (FileNotFoundException)
            {
                app.TimeTables = new List <TableCourses>();
                SaveTimeTables();
            }
            finally
            {
                TimeTableProgressBar.Visibility = Visibility.Collapsed;
            }
        }
Esempio n. 5
0
        private async void FromShareCode_Click(object sender, RoutedEventArgs e)
        {
            var dialog = new InputDialog()
            {
                Title       = "请输入在线分享码",
                Placeholder = "在线分享码"
            };

            if ((await dialog.ShowAsyncQueue()) == ContentDialogResult.Primary)
            {
                try
                {
                    var code = dialog.Result;

                    if (code.Contains(":"))
                    {
                        code = code.Substring(code.IndexOf(":") + 1).Trim();
                    }

                    var content = AVObject.CreateWithoutData("TimeTable", code);
                    await content.FetchAsync();

                    var tableCourses = JsonConvert.DeserializeObject <TableCourses>(Convert.ToString(content["Content"]));
                    Models.Add(await TimeTableHelper.GenerateTimeTableModel(tableCourses));

                    app.TimeTables.Add(tableCourses);
                    SaveTimeTables();
                }
                catch (Exception err)
                {
                    var msgDialog = new CommonDialog("分享码格式错误:\n" + err.Message)
                    {
                        Title = "错误",
                    };
                    await msgDialog.ShowAsyncQueue();
                }
            }
        }