Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="scheduleModel"></param>
        /// <param name="token"></param>
        /// <returns></returns>
        public static string setTeacherAvailability(Models.ScheduleModel scheduleModel, string token)
        {
            try
            {
                using (var client = new HttpClient())
                {
                    string         json;
                    HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://193.10.30.155/corridorAPI/api/Schedule");

                    httpWebRequest.Method      = WebRequestMethods.Http.Post;//GET OR POST
                    httpWebRequest.Accept      = "application/json; charset=utf-8";
                    httpWebRequest.ContentType = "application/json; charset=utf-8";
                    httpWebRequest.Headers.Add("Authorization", "Bearer " + token);

                    using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                    {
                        json = JsonConvert.SerializeObject(scheduleModel);

                        streamWriter.Write(json);
                        streamWriter.Flush();
                        streamWriter.Close();
                    }

                    var response       = (HttpWebResponse)httpWebRequest.GetResponse();
                    var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
                    System.Windows.MessageBox.Show("Time was set!");
                    return(responseString);
                }
            }
            catch (Exception e)
            {
                System.Windows.MessageBox.Show(e.ToString());
                return(null);
            }
        }
Beispiel #2
0
        public async Task GetCurrentSchedule(string name, string username)
        {
            string html = string.Empty;

            try
            {
                html = await EduPageViewModel.CoreService.GetCurrentSchedule(EduPageViewModel.HttpService, name, username);
            }
            catch (HttpRequestException ex)
            {
                Services.NotityService.Notify("获取数据失败");
                //GalaSoft.MvvmLight.Messaging.Messenger.Default.Send("获取数据失败", messageToken);
            }
            catch (System.Net.WebException)
            {
                Services.NotityService.Notify("检查是否连接到校园网");
            }
            catch
            {
                Services.NotityService.Notify("遇到意外错误");
                //GalaSoft.MvvmLight.Messaging.Messenger.Default.Send("遇到意外错误", messageToken);
                return;
            }
            try
            {
                var list = Models.ScheduleModel.GetSchedule(html);//获取课表
                var temp = new Models.ScheduleModel {
                    ScheduleItemList = list, ShcoolYear = EduTime.SchoolYear, Term = EduTime.Term
                };

                if (temp.ScheduleItemList.Count <= 0)
                {
                    Services.NotityService.Notify("没有课程信息");
                }
                Schedule = temp;
                if (Weeks.Count < EduTime.Week)
                {
                    SelectedWeekIndex = temp.Weeks.Count - 1;
                }
                else
                {
                    SelectedWeekIndex = EduTime.Week - 1;
                }



                SetTime();

                SaveSchedule();
            }
            catch (Exception e)
            {
                Services.NotityService.Notify("解析数据失败");
                //GalaSoft.MvvmLight.Messaging.Messenger.Default.Send("解析数据失败", messageToken);
            }
        }
Beispiel #3
0
        public async Task GetSpecificSchedule(string name, string username, string schoolYear, int term)
        {
            string html = string.Empty;

            try
            {
                html = await ViewModels.EduPageViewModel.CoreService.GetSpecificSchedule(EduPageViewModel.HttpService, name, username, schoolYear, term);
            }
            catch (HttpRequestException ex)
            {
                Services.NotityService.Notify("获取数据失败");
            }
            catch
            {
                Services.NotityService.Notify("遇到意外错误");
                return;
            }
            try
            {
                var list = Models.ScheduleModel.GetSchedule(html);//获取课表
                var temp = new Models.ScheduleModel {
                    ScheduleItemList = list, ShcoolYear = schoolYear, Term = term
                };

                if (temp.ScheduleItemList.Count <= 0)
                {
                    Services.NotityService.Notify("没有课程信息");
                }
                Schedule = temp;
                if (schoolYear == EduTime.SchoolYear && term == EduTime.Term)
                {
                    if (Weeks.Count < EduTime.Week)
                    {
                        SelectedWeekIndex = temp.Weeks.Count - 1;
                    }
                    else
                    {
                        SelectedWeekIndex = EduTime.Week - 1;
                    }
                }
                else
                {
                    SelectedWeekIndex = 0;
                }

                if (temp.ShcoolYear == EduTime.SchoolYear && temp.Term == EduTime.Term)
                {
                    SaveSchedule();
                }
            }
            catch
            {
                Services.NotityService.Notify("解析数据失败");
            }
        }
Beispiel #4
0
        public EduSchedulePageViewModel(INavigationService navigationService)
        {
            _navigationService = navigationService;
            _dbService         = new Services.DbService();

            RefreshCommand     = new DelegateCommand(Refresh);
            ItemClickedCommand = new DelegateCommand <object>(ItemClicked);
            InitEduTimeList();

            Schedule = new Models.ScheduleModel();
        }
        public void Delete()
        {
            if (SelectedIndex != -1)
            {
                var subject = Subjects[SelectedIndex];
                Subjects.RemoveAt(SelectedIndex);
                subjects.DeleteSubject(subject);

                Models.ScheduleModel schedule = Data.ScheduleDAL.GetSchedule();
                schedule.DeleteSubjectFromSchedule(subject.Title);
                Data.ScheduleDAL.StoreSchedule(schedule);
            }
        }
Beispiel #6
0
        // Store provided schedule into json
        public static void StoreSchedule(Models.ScheduleModel schedule)
        {
            Windows.Storage.StorageFile scheduleFile = null;
            JObject scheduleJson = new JObject();

            scheduleJson["MaxHours"] = schedule.MaxHours;

            for (int j = 0; j < 5; j++)
            {
                JArray daySchedule = new JArray();
                string day         = string.Empty;
                switch (j)
                {
                case 0: day = "Monday"; break;

                case 1: day = "Tuesday"; break;

                case 2: day = "Wednesday"; break;

                case 3: day = "Thursday"; break;

                case 4: day = "Friday"; break;
                }
                for (int i = 0; i < schedule.MaxHours; i++)
                {
                    JObject subj = new JObject();
                    subj["Title"] = schedule.Schedule[j][i];
                    daySchedule.Add(subj);
                }
                scheduleJson[day] = daySchedule;
            }

            try
            {
                var task = Task.Run(async() => { scheduleFile = await Windows.Storage.ApplicationData.Current.RoamingFolder.CreateFileAsync("schedule.json", Windows.Storage.CreationCollisionOption.ReplaceExisting); });
                task.Wait();
                task = Task.Run(async() => { await Windows.Storage.FileIO.WriteTextAsync(scheduleFile, scheduleJson.ToString()); });
                task.Wait();
            }
            catch (Exception ex)
            {
                return;
            }
        }
Beispiel #7
0
        // Returns schedule loaded from json
        public static Models.ScheduleModel GetSchedule()
        {
            Models.ScheduleModel schedule = new Models.ScheduleModel();
            JObject     scheduleJSON;
            StorageFile scheduleFile = null;
            string      content      = string.Empty;

            try
            {
                var task = Task.Run(async() => { scheduleFile = await Windows.Storage.ApplicationData.Current.RoamingFolder.GetFileAsync("schedule.json"); });
                task.Wait();
                task = Task.Run(async() => { content = await Windows.Storage.FileIO.ReadTextAsync(scheduleFile); });
                task.Wait();
                scheduleJSON = JObject.Parse(content);
            }
            catch (Exception ex)
            {
                return(schedule);
            }
            schedule.MaxHours = (int)scheduleJSON["MaxHours"];

            for (int j = 0; j < 5; j++)
            {
                string day = string.Empty;
                switch (j)
                {
                case 0: day = "Monday"; break;

                case 1: day = "Tuesday"; break;

                case 2: day = "Wednesday"; break;

                case 3: day = "Thursday"; break;

                case 4: day = "Friday"; break;
                }
                for (int i = 0; i < schedule.MaxHours; i++)
                {
                    schedule.Schedule[j].Add((string)(scheduleJSON[day][i]["Title"]));
                }
            }
            return(schedule);
        }
 public ScheduleViewModel()
 {
     schedule = Data.ScheduleDAL.GetSchedule();
 }
Beispiel #9
0
 public static void SetSchedule(BindableObject o, Models.ScheduleModel value)
 {
     o.SetValue(ScheduleProperty, value);
 }