using System; using System.Windows.Forms; using SA_LTT.UserInfo; using SA_LTT_UI.Viewer; using SA_LTT; namespace SA_LTT_UI.Screen { public partial class ScreenSetting : UserControl { MainFrame _mainFrame; public ScreenSetting(MainFrame mainFrame) { InitializeComponent(); _mainFrame = mainFrame; _mainFrame.equipment.userManager.Changed += UserManager_Changed; RefreshUserList(); } private void UserManager_Changed() { RefreshUserList(); } private void RefreshUserList() { _mainFrame.equipment.userManager.RefreshUsers(); lv_UserList.Items.Clear(); int i = 1; foreach (User user in _mainFrame.equipment.userManager.GetUserList()) { ListViewItem listViewItem = new ListViewItem($"{i}"); listViewItem.SubItems.Add(user.Name); listViewItem.SubItems.Add(user.Level.ToString()); lv_UserList.Items.Add(listViewItem); i++; } } private void ModifyUser() { if (lv_UserList.SelectedItems.Count != 0) { string userName = lv_UserList.SelectedItems[0].SubItems[1].Text; User user = _mainFrame.equipment.userManager.GetUser(userName); if (user != null) { if (user.Level > _mainFrame.equipment.User.Level) { if (_mainFrame.equipment.User.Name != user.Name) { MessageBox.Show("현재 유저의 레벨보다 선택한 유저의 레벨이 높으면 수정할 수 없습니다."); return; } } ModifyUserViewer modifyUserViewer = new ModifyUserViewer(_mainFrame, user); if (modifyUserViewer.ShowDialog() == DialogResult.OK) { _mainFrame.equipment.userManager.SaveOrCreate(modifyUserViewer.user); if (_mainFrame.equipment.User.Name == userName) { EquipmentLogManager.Instance.WriteButtonLog($"ScreenSetting : Modify User {userName}"); _mainFrame.equipment.ChangeUser(userName); } } } } } private void DeleteUser() { if (lv_UserList.SelectedItems.Count != 0) { string userName = lv_UserList.SelectedItems[0].SubItems[1].Text; User user = _mainFrame.equipment.userManager.GetUser(userName); if (user != null) { if (user.Level > _mainFrame.equipment.User.Level) { MessageBox.Show("현재 유저의 레벨보다 선택한 유저의 레벨이 높으면 삭제 할 수 없습니다."); return; } if (userName == "DIT" || userName == "Operator") { MessageBox.Show("DIT, Operaotr 는 삭제할 수 없습니다."); return; } if(user.Equals(_mainFrame.equipment.User)) { MessageBox.Show("현재 로그인 되어 있는 계정입니다."); return; } EquipmentLogManager.Instance.WriteButtonLog($"ScreenSetting : Delete User {userName}"); _mainFrame.equipment.userManager.Delete(userName); } } } private void lb_UserList_Click(object sender, EventArgs e) { //RefreshUserList(); } private void btn_Create_Click(object sender, EventArgs e) { CreateUserViewer createUserViewer = new CreateUserViewer(_mainFrame); if (createUserViewer.ShowDialog() == DialogResult.OK) { EquipmentLogManager.Instance.WriteButtonLog($"ScreenSetting : Create User {createUserViewer.user}"); _mainFrame.equipment.userManager.SaveOrCreate(createUserViewer.user); } } private void btn_Delete_Click(object sender, EventArgs e) { DeleteUser(); } private void btn_Modify_Click(object sender, EventArgs e) { ModifyUser(); } private void lv_UserList_DoubleClick(object sender, EventArgs e) { ModifyUser(); } } }