Exemplo n.º 1
0
        private async void LoginExecute(object o)
        {
            var d = o as DialogHost;

            d.DialogContent = new WaitDialog {
                DataContext = "正在登录..."
            };
            d.IsOpen = true;

            var result =
                await
                    (Application.Current as App).ViewModel.Session.Login((LoginMode)AccoutType, Accout, Password,
                                                                         VerifyCode, VerifyQuestionIndex,
                                                                         VerifyAnswer);

            d.IsOpen = false;
            if (result.Status == 0)
            {
                var info = await(Application.Current as App).ViewModel.Session.GetUserInformation();

                _applicationViewModel.Name      = info.UserName;
                _applicationViewModel.AvatarUrl = info.Avatar;

                UserSignLog signLog = JsonConvert.DeserializeObject <UserSignLog>(Settings.Default.SignLog) ??
                                      new UserSignLog();
                if (signLog.ContainsKey(_applicationViewModel.Session.User.UID))
                {
                    _applicationViewModel.CheckInDates = signLog[_applicationViewModel.Session.User.UID];
                }
                else
                {
                    _applicationViewModel.CheckInDates = new DatesCollection();
                }

                CancelExecute(d.Parent);
                (Application.Current as App).NotifyIcon.ShowBalloonTip(3000, "登录成功",
                                                                       $"欢迎回来,{result.Values["username"]}。", ToolTipIcon.Info);
            }
            else
            {
                switch (result.Message)
                {
                case "login_strike":
                    d.DialogContent = new ErrorMessageDialog("登录失败:", "由于多次尝试登陆失败,请稍后再尝试。");
                    break;

                case "login_invalid":
                    d.DialogContent = new ErrorMessageDialog("登录失败:", "账户密码有误,请核对后再尝试。");
                    break;

                default:
                    d.DialogContent = new ErrorMessageDialog("登录失败:",
                                                             $"由于未知原因登录失败,这些信息可能为你提供了一些信息:\r\n{result.Message}。");
                    break;
                }
                d.IsOpen = true;
                RefreshVerifyCodeCommand.Execute(null);
                VerifyCode = "";
            }
        }
Exemplo n.º 2
0
        public void SaveSetting()
        {
            if (ViewModel.Session.State == SessionState.Alive)
            {
                UserSignLog signLog = JsonConvert.DeserializeObject <UserSignLog>(Settings.Default.SignLog) ??
                                      new UserSignLog();

                if (signLog.ContainsKey(ViewModel.Session.User.UID))
                {
                    signLog[ViewModel.Session.User.UID] = ViewModel.CheckInDates;
                }
                else
                {
                    signLog.Add(ViewModel.Session.User.UID, ViewModel.CheckInDates);
                }

                Settings.Default.SignLog = JsonConvert.SerializeObject(signLog);
            }
            Settings.Default.Cookies      = JsonConvert.SerializeObject(ViewModel.Session.Cookies);
            Settings.Default.AutoFillData = JsonConvert.SerializeObject(ViewModel.AutofillList);
            Settings.Default.Test         = "This is a string.";
            Settings.Default.Save();
        }