Пример #1
0
        private async void Submit_Click(object sender, RoutedEventArgs e)
        {
            var userProfile = new {
                nickname = NicknameInput.Text,
                email    = EmailInput.Text,
                phone    = PhoneInput.Text,
                homepage = HomepageInput.Text,
            };
            string invalidKey = CheckInput(JObject.FromObject(userProfile));

            if (invalidKey != null)
            {
                await ShowMessage($"{ProfileNames[invalidKey]}的值不能为空");

                return;
            }
            try {
                await Model.MatrixRequest.ChangeProfile(
                    userProfile.nickname,
                    userProfile.email,
                    userProfile.phone,
                    userProfile.homepage
                    );
            } catch (MatrixException.MatrixException err) {
                Debug.WriteLine($"更改用户信息失败, {err.Message}");
                OnContentError?.Invoke(this, new NavigationViewContentEvent(err));
            }
        }
Пример #2
0
 private async void SubmitAssignment(object sender, RoutedEventArgs e)
 {
     try {
         await viewModel.Assignment.SubmitProgramming();
     } catch (MatrixException.MatrixException err) {
         OnContentError?.Invoke(this, new NavigationViewContentEvent(err));
     }
 }
Пример #3
0
 private async void ReadAll_Click(object sender, RoutedEventArgs e)
 {
     try {
         await Model.MatrixRequest.ReadAllNotifications();
     } catch (MatrixException.MatrixException err) {
         OnContentError?.Invoke(this, new NavigationViewContentEvent(err, $"标记列表状态失败:{err.Message}"));
     } finally {
         await Refresh();
     }
 }
Пример #4
0
 public async Task Refresh()
 {
     OnContentLoading?.Invoke(this, new NavigationViewContentEvent());
     try {
         viewModel.Notifications = await Model.MatrixRequest.GetNotificationList();
     } catch (MatrixException.MatrixException err) {
         OnContentError?.Invoke(this, new NavigationViewContentEvent(err, $"获取通知列表失败:{err.Message}"));
     }
     OnContentLoaded?.Invoke(this, new NavigationViewContentEvent());
 }
Пример #5
0
 public async Task Refresh()
 {
     OnContentLoading?.Invoke(this, new NavigationViewContentEvent());
     try {
         viewModel.TodoAssignments = await Model.MatrixRequest.GetUnfinishAssignment();
     } catch (MatrixException.MatrixException err) {
         OnContentError?.Invoke(this, new NavigationViewContentEvent(err));
     }
     OnContentLoaded?.Invoke(this, new NavigationViewContentEvent());
 }
Пример #6
0
 public async Task Refresh()
 {
     OnContentLoading?.Invoke(this, new NavigationViewContentEvent());
     try {
         viewModel.Courses = await Model.MatrixRequest.GetCourseList();
     } catch (MatrixException.MatrixException err) {
         Debug.WriteLine($"获取课程列表失败: {err.Message}");
         OnContentError?.Invoke(this, new NavigationViewContentEvent(err));
     }
     OnContentLoaded?.Invoke(this, new NavigationViewContentEvent());
 }
Пример #7
0
        private async void Checkbox_Checked(object sender, RoutedEventArgs e)
        {
            FrameworkElement elem = sender as FrameworkElement;

            if (!(elem.DataContext is Model.Notification notification))
            {
                return;
            }
            try {
                await notification.toggleReadState();
            } catch (MatrixException.MatrixException err) {
                OnContentError?.Invoke(this, new NavigationViewContentEvent(err, $"标记列表状态失败:{err.Message}"));
            }
        }
Пример #8
0
 public async Task Refresh()
 {
     // notify start loading
     OnContentLoading?.Invoke(this, new NavigationViewContentEvent());
     try {
         viewModel.Libraries = await Model.MatrixRequest.GetLibraryList();
     } catch (MatrixException.MatrixException err) {
         var message = "获取题库列表失败";
         Debug.WriteLine($"{message}: {err.Message}");
         OnContentError?.Invoke(this, new NavigationViewContentEvent(err, message));
     }
     // notify loaded end
     OnContentLoaded?.Invoke(this, new NavigationViewContentEvent());
 }
Пример #9
0
        // Interface Refresh
        public async Task Refresh()
        {
            // notify loading
            OnContentLoading?.Invoke(this, new NavigationViewContentEvent());
            try {
                viewModel.curUser = await Model.MatrixRequest.GetProfile();
            } catch (MatrixException.MatrixException err) {
                var message = "获取用户信息失败";
                Debug.WriteLine($"{message}, {err.Message}");
                OnContentError?.Invoke(this, new NavigationViewContentEvent(err, message));
            }

            // notify loaded
            OnContentLoaded?.Invoke(this, new NavigationViewContentEvent());
        }
Пример #10
0
        public async Task Refresh()
        {
            OnContentLoading?.Invoke(this, new NavigationViewContentEvent());
            try {
                viewModel.Course = await Model.MatrixRequest.GetCourse(viewModel.CourseId);

                viewModel.Assignments = await Model.MatrixRequest.GetAssignmentList(viewModel.CourseId);
            } catch (MatrixException.MatrixException err) {
                Debug.WriteLine($"请求课程信息错误:{err.Message}");
                OnContentError?.Invoke(this, new NavigationViewContentEvent(err));
            }
            OnContentLoaded?.Invoke(this, new NavigationViewContentEvent());

            TitleChanged?.Invoke(this, new NavigationViewContentEvent(GetTitle()));
        }
Пример #11
0
        public async Task Refresh()
        {
            int courseId = viewModel.Assignment.course_id;
            int caId     = viewModel.Assignment.ca_id;

            // notify loading
            OnContentLoading?.Invoke(this, new NavigationViewContentEvent());

            try {
                viewModel.Assignment = await Model.MatrixRequest.GetAssignment(courseId, caId);
            } catch (MatrixException.MatrixException err) {
                var message = $"获取课程{courseId}作业{caId}详情失败";
                Debug.WriteLine($"{message}: {err.Message}");
                OnContentError?.Invoke(this, new NavigationViewContentEvent(err, message));
            }

            // notify loaded
            OnContentLoaded?.Invoke(this, new NavigationViewContentEvent());

            // set title since assignment name changed.
            TitleChanged?.Invoke(this, new NavigationViewContentEvent(viewModel.Assignment.name));
        }