예제 #1
0
            public static async Task <CourseModel> GetCourse(int day, int section, string yaer = null, string term = null, string week = null)
            {
                string filename = "course_";

                if (yaer == null)
                {
                    filename = filename + MD5.GetMd5String(UserManager.UserData.beginYear.ToString() + UserManager.UserData.term.ToString());
                }
                else
                {
                    filename = filename + MD5.GetMd5String(yaer + term);
                }


                var CourseFolder = await ApplicationData.Current.LocalFolder.CreateFolderAsync("Course", CreationCollisionOption.OpenIfExists);

                var CourseFile = await CourseFolder.CreateFileAsync(filename, CreationCollisionOption.OpenIfExists);

                var json = await FileIO.ReadTextAsync(CourseFile);

                ObservableCollection <CourseModel> CourseList;

                if (json == "")
                {
                    CourseList = null;
                }
                else
                {
                    CourseList = Data.Json.DataContractJsonDeSerialize <ObservableCollection <CourseModel> >(json);
                }
                if (CourseList == null)
                {
                    return(null);
                }
                else
                {
                    CourseModel result = null;

                    var resultList = new List <CourseModel>();
                    foreach (var item in CourseList)
                    {
                        if (item.day == day && (item.sectionStart <= section && section <= item.sectionEnd))
                        {
                            resultList.Add(item);
                            result = item;
                        }
                    }

                    var isWeekValid = int.TryParse(week, out int _week);


                    if (resultList.Count > 1 && isWeekValid)
                    {
                        foreach (var item in resultList)
                        {
                            var weeks = item.smartPeriod.Split(' ');

                            if (Array.IndexOf(weeks, week) >= 0)
                            {
                                result = item;
                                break;
                            }
                        }
                    }



                    return(result);
                }
            }