コード例 #1
0
        public async static Task <OneDayTimeTableModel> GenerateOneDayTimeTableModel(TableCourses tableCourses)
        {
            OneDayTimeTableModel model = new OneDayTimeTableModel(tableCourses.Name);
            var week = ParseTableCourses(tableCourses, (await GetCurrentWeek()), out int weekCount);

            Debug.WriteLine("Started: Generate One Day TimeTableModel");
            foreach (var item in week.Items)
            {
                if (WEEKS[item.Day - 1] == DateTime.Now.DayOfWeek)
                {
                    model.Courses.Add(item);
                }
            }
            model.Courses.Sort((a, b) => a.Start - b.Start);
            Debug.WriteLine("Finished: Generate One Day TimeTableModel");
            return(model);
        }
コード例 #2
0
        public static void UpdateTile(OneDayTimeTableModel courses)
        {
            // Create a tile update manager for the specified syndication feed.
            var updater = TileUpdateManager.CreateTileUpdaterForApplication();

            updater.EnableNotificationQueue(true);
            updater.Clear();

            List <string> titles = new List <string>(), desps = new List <string>();

            foreach (var item in courses.Courses)
            {
                if (item.End < GetCurrentClassNumber())
                {
                    continue;
                }

                titles.Add(item.Name);
                desps.Add(item.Start + " - " + item.End + "节\n" + item.Description);
            }

            int n = titles.Count();
            int m = n;

            if (n % 2 == 1)
            {
                titles.Add("");
                desps.Add("");
                ++m;
            }
            for (int i = 0; i < Math.Min(n, 4); ++i)
            {
                XmlDocument tileXml =
                    MakeContent(titles[i], desps[i],
                                titles[(i * 2) % m], desps[(i * 2) % m],
                                titles[(i * 2 + 1) % m], desps[(i * 2 + 1) % m]);

                // Create a new tile notification.
                updater.Update(new TileNotification(tileXml));
            }
        }