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 = ""; } }
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(); }