| | |
| | | using HMI.Base; |
| | | using HMI.Core.Util; |
| | | using HMI.MenuManage.Entity; |
| | | using HMI.MenuManage.Model; |
| | | using HMI.UI.Util; |
| | | using HMI.Util; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | this.Loaded -= UserManage_Loaded; |
| | | } |
| | | |
| | | public override void DoClose(object sender, EventArgs e) |
| | | { |
| | | try |
| | | { |
| | | Model?.sqliteHelper?.Close(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | log.Warn("Do Close Failed.", ex); |
| | | } |
| | | } |
| | | |
| | | private void Button_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | Button btn = (Button)sender; |
| | |
| | | { |
| | | UserModal userModal = new UserModal |
| | | { |
| | | Title = "新增用户", |
| | | Title = LangUtil.Get("HMI.User.Add"), |
| | | Owner = Window.GetWindow(this), |
| | | sqliteHelper = Model.sqliteHelper |
| | | }; |
| | |
| | | catch (Exception ex) |
| | | { |
| | | log.Error("Add User Failed.", ex); |
| | | ToastHelper.Error(Window.GetWindow(this), $"新增失败!{ex.Message}"); |
| | | ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("App.AddFailed")}: {ex.Message}"); |
| | | } |
| | | } |
| | | else if (btn.Name == "refreshBtn") |
| | |
| | | catch (Exception ex) |
| | | { |
| | | log.Error("Refresh User Failed.", ex); |
| | | ToastHelper.Error(Window.GetWindow(this), $"刷新失败!{ex.Message}"); |
| | | ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("App.RefreshFailed")}: {ex.Message}"); |
| | | } |
| | | } |
| | | else if (btn.Name == "editBtn") |
| | |
| | | { |
| | | UserModal userModal = new UserModal |
| | | { |
| | | Title = "编辑用户", |
| | | Title = LangUtil.Get("HMI.User.Edit"), |
| | | Owner = Window.GetWindow(this), |
| | | sqliteHelper = Model.sqliteHelper |
| | | }; |
| | |
| | | catch (Exception ex) |
| | | { |
| | | log.Error("Edit User Failed.", ex); |
| | | ToastHelper.Error(Window.GetWindow(this), $"编辑失败!{ex.Message}"); |
| | | ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("App.EditFailed")}: {ex.Message}"); |
| | | } |
| | | } |
| | | else if (btn.Name == "deleteBatchBtn") |
| | |
| | | List<string> usernames = Model.DataSource.Where(x => x.Selected).Select(x => x.Username).ToList(); |
| | | if (usernames == null || usernames.Count <= 0) |
| | | { |
| | | ToastHelper.Warning(Window.GetWindow(this), "请选择要删除的用户!"); |
| | | ToastHelper.Warning(Window.GetWindow(this), LangUtil.Get("HMI.NoDeleteData")); |
| | | return; |
| | | } |
| | | |
| | | var res = MsgBoxHelper.WarnMessage(Window.GetWindow(this), |
| | | $"确定删除选中的[{usernames.Count}]条用户吗?该操作不可逆!"); |
| | | string.Format(LangUtil.Get("HMI.MakeSureDeletes"), usernames.Count)); |
| | | if (res == MessageBoxResult.OK) |
| | | { |
| | | Model.DeleteUserByUsernames(usernames); |
| | | Model.LoadData(); |
| | | ToastHelper.Success(Window.GetWindow(this), "删除成功"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | log.Error("Delete User Batch Failed.", ex); |
| | | ToastHelper.Error(Window.GetWindow(this), $"删除失败!{ex.Message}"); |
| | | ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("App.DeleteFailed")}: {ex.Message}"); |
| | | } |
| | | } |
| | | else if (btn.Name == "delBtn") |
| | |
| | | { |
| | | var data = (UserData)((Button)sender).DataContext; |
| | | var res = MsgBoxHelper.WarnMessage(Window.GetWindow(this), |
| | | $"确定删除用户[{data.Name}]吗?该操作不可逆!"); |
| | | string.Format(LangUtil.Get("HMI.MakeSureDeleteSingle"), data.Name)); |
| | | if (res == MessageBoxResult.OK) |
| | | { |
| | | Model.DeleteUserByUsername(data.Username); |
| | |
| | | catch (Exception ex) |
| | | { |
| | | log.Error("Delete User Failed.", ex); |
| | | ToastHelper.Error(Window.GetWindow(this), $"删除失败!{ex.Message}"); |
| | | ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("App.DeleteFailed")}: {ex.Message}"); |
| | | } |
| | | } |
| | | else if (btn.Name == "saveRoleBtn") |
| | |
| | | { |
| | | Model.SaveUserRole(); |
| | | Model.LoadUserRole(); |
| | | ToastHelper.Success(Window.GetWindow(this), "保存成功"); |
| | | ToastHelper.Success(Window.GetWindow(this), LangUtil.Get("App.SaveSuccess")); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | log.Error("Update User-Role Rel Failed.", ex); |
| | | ToastHelper.Error(Window.GetWindow(this), $"保存失败!{ex.Message}"); |
| | | ToastHelper.Error(Window.GetWindow(this), $"{LangUtil.Get("App.SaveFailed")}: {ex.Message}"); |
| | | } |
| | | } |
| | | else if (btn.Name == "exportBtn") |
| | | { |
| | | ExportToExcel(); |
| | | } |
| | | else if (btn.Name == "importBtn") |
| | | { |
| | | ImportFromExcel(); |
| | | } |
| | | } |
| | | |
| | | public void ExportToExcel() |
| | | { |
| | | try |
| | | { |
| | | if (Model.DataSource == null || Model.DataSource.Count <= 0) |
| | | { |
| | | ToastHelper.Warning(this.lang("App.NoExportData")); |
| | | return; |
| | | } |
| | | System.Windows.Forms.SaveFileDialog sfd = new System.Windows.Forms.SaveFileDialog(); |
| | | |
| | | string fname = string.Empty; |
| | | sfd.Filter = ""; |
| | | sfd.DefaultExt = "xls"; |
| | | sfd.FileName = this.lang("HMI.User.Title"); |
| | | if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK) |
| | | { |
| | | fname = sfd.FileName; |
| | | ExcelHelper.ExportExcel(fname, Model.DataSource); |
| | | ToastHelper.Success(this.lang("App.ExportSuccess")); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | log.Error("Export User Data Failed.", ex); |
| | | ToastHelper.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | public void ImportFromExcel() |
| | | { |
| | | try |
| | | { |
| | | System.Windows.Forms.OpenFileDialog openDialog = new System.Windows.Forms.OpenFileDialog(); |
| | | openDialog.Filter = "execl(*.xlsx;*.xls)|*.xlsx;*.xls"; |
| | | if (openDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) |
| | | { |
| | | List<UserData> users = ExcelHelper.ReadFromExcel<UserData>(openDialog.FileName); |
| | | if (users == null || users.Count <= 0) |
| | | { |
| | | ToastHelper.Warning(this.lang("App.NoImportData")); |
| | | return; |
| | | } |
| | | Model.ImportUser(users); |
| | | Model.LoadData(); |
| | | ToastHelper.Success(this.lang("App.ImportSuccess")); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | log.Error("AlarmText Import Failed.", ex); |
| | | ToastHelper.Error(Window.GetWindow(this), $"{this.lang("App.ImportFailed")}: {ex.Message}"); |
| | | } |
| | | } |
| | | } |
| | | } |