BOOK-IQ4TD9B9LB\DIT-930
2023-05-15 f5120e92b525474f6b4e50130797946986c28eed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
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();
        }
    }
}