/// <summary> /// Commands Initialisieren (aufruf im Kostruktor von VmBase) /// </summary> protected override void InitializeCommands() { CmdSave = new VmCommand(ResViewEditUser.CmdSaveName, async() => { IsBusy = true; var d = BissClone.Clone(UserAccountData); d.FirstName = Data.FirstName; d.LastName = Data.LastName; d.City = Data.City; d.PostalCode = Data.PostalCode; d.Street = Data.Street; var r = await Sa.UserUpdate(d); if (await this.CheckRestStatusResult(r.Status) && await this.CheckSaveResult(r.Result)) { CheckSaveBehavior = null; UserAccountData = d; FileExtensions.BcFiles(null).UserAppData.Save(d); ViewResult = Data; ContinueNavigation(); } IsBusy = false; }, () => CheckSaveBehavior != null && CheckSaveBehavior.Check(), ResViewEditUser.CmdSaveTooltip); CmdSkip = new VmCommand(ResViewEditUser.CmdSkipName, async() => { CheckSaveBehavior = null; ContinueNavigation(); }); }
/// <summary> /// Wird aufgerufen sobald die View initialisiert wurde /// </summary> /// <param name="args"></param> /// <returns></returns> public override Task OnActivated(object args = null) { if (UserAccountData == null) { Logging.Log.LogError("UserAccount null?"); Nav.ToView("ViewMain"); } if (args is bool fromRegistration) { FromRegistration = fromRegistration; } Data = new EditUserData { LastName = UserAccountData.LastName, FirstName = UserAccountData.FirstName, }; CheckSaveBehavior.SetCompareData(Data.ToJson()); Data.PropertyChanged += (sender, eventArgs) => { CmdSave.CanExecute(); }; _saveCheck.CheckSaveComparer += (sender, a) => { a.JsonToCompare = Data.ToJson(); }; return(Task.CompletedTask); }
/// <summary> /// Wird aufgerufen sobald die View initialisiert wurde /// </summary> /// <param name="args"></param> /// <returns></returns> public override async Task OnActivated(object args = null) { if (UserAccountData == null) { ViewAfterLogin = "******"; ViewArgsAfterLogin = args; await Task.Run(async() => { var elem = new AsyncAutoResetEvent(); RunOnMainThread(async() => { await Nav.ToViewWithResult("ViewLogin"); elem.Set(); }); await elem.WaitOne(); }); } if (UserAccountData == null) { Logging.Log.LogError("UserAccount noch immer null?"); Nav.ToView("ViewMain"); } else { _dataLoaded = true; CmdChangeUserData.CanExecute(); CmdChangePassword.CanExecute(); UpdateData(); CheckSaveBehavior.SetCompareData(Data.ToJson()); Data.PropertyChanged += (sender, eventArgs) => { CmdChangeUserData.CanExecute(); }; _saveCheck.CheckSaveComparer += (sender, a) => { a.JsonToCompare = Data.ToJson(); }; } }
/// <summary> /// Commands Initialisieren (aufruf im Kostruktor von VmBase) /// </summary> protected override void InitializeCommands() { CmdChangeUserData = new VmCommand(ResViewUser.CmdChangeUserData, async() => { IsBusy = true; var d = BissClone.Clone(UserAccountData); d.FirstName = Data.FirstName; d.LastName = Data.LastName; d.City = Data.City; d.PostalCode = Data.PostalCode; d.Street = Data.Street; var r = await Sa.UserUpdate(d); if (await this.CheckRestStatusResult(r.Status) && await this.CheckSaveResult(r.Result)) { CheckSaveBehavior = null; UserAccountData = d; FileExtensions.BcFiles(null).UserAppData.Save(d); ViewResult = Data; } IsBusy = false; UpdateData(); }, () => CheckSaveBehavior != null && CheckSaveBehavior.Check()); CmdChangePassword = new VmCommand(ResViewUser.CmdChangePassword, async() => { await Nav.ToViewWithResult("ViewEditPassword"); }, () => _dataLoaded); CmdLogout = new VmCommand(ResViewUser.CmdLogout, async() => { FileExtensions.BcFiles(null).UserAppData.Delete(); UserAccountData = null; await DeviceInfoDelete(); if (Constants.SupportLogin) { AppCenter.UpdateCurrentUser("", ""); } UpdateMenu(); Nav.ToView("ViewMain"); }); CmdDeleteAccount = new VmCommand(ResViewUser.CmdDeleteAccount, async() => { var res = await MsgBox.Show(ResViewUser.MsgBoxDeleteAccount, ResViewUser.MsgBoxDeleteAccountCaption, VmMessageBoxButton.YesNo); if (res == VmMessageBoxResult.Yes) { IsBusy = true; var saRes = await Sa.DeleteUser(UserAccountData.UserId); if (await this.CheckRestStatusResult(saRes.Status)) { CheckSaveBehavior = null; CmdLogout.Execute(null); } IsBusy = false; } }); }