/// /// Copyright (c) 2017 Sensus Metering Systems /// using System; using System.Collections.Generic; using System.Windows.Forms; using NHibernate; using Config.Entities; using Users.Resources; namespace Users.Forms { public partial class EditUsers: Form { NHibernate.ISession session; IList ListOfUsers; int LastSelectedIndex; public EditUsers() { InitializeComponent(); } private void EditUsers_Load(object sender, EventArgs e) { Text = Strings.User_Management; btnAdd.Text = Strings.AddBtnText; btnEdit.Text = Strings.EditBtnText; btnDelete.Text = Strings.RemoveBtnText; btnOk.Text = Strings.OkBtnText; columnHeader1.Text = Strings.Name; columnHeader2.Text = Strings.ID; } private void EditUsers_Activated(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; session = Config.FluentCommon.CreateSession(Config.Entities.DBKind.Config); ListUsers(); RefreshButtonStates(); } public void ListUsers() { Cursor.Current = Cursors.WaitCursor; if (Config.Data.CurrentUser.IsMemberOf(Config.Grp.GID.Administrators) || Config.Data.CurrentUser.IsMemberOf(Config.Grp.GID.HeadOfLab)) { /// Admin and HeadOfLab can edit all users ListOfUsers = session.QueryOver().List(); } else { /// user can only edit their own data ListOfUsers = session.QueryOver().Where(x => (x == Config.Data.CurrentUser)).List(); } listViewUsers.Items.Clear(); foreach (var person in ListOfUsers) { ListViewItem item = new ListViewItem(person.UserName); item.SubItems.Add(person.Id.ToString()); item.Tag = person; this.listViewUsers.Items.Add(item); } this.listViewUsers.Refresh(); Cursor.Current = Cursors.Default; } private void btnOk_Click(object sender, EventArgs e) { this.Close(); } private void RefreshButtonStates() { btnEdit.Enabled = (listViewUsers.SelectedItems.Count > 0); btnDelete.Enabled = (listViewUsers.SelectedItems.Count > 0); } private void listViewUsers_SelectedIndexChanged(object sender, EventArgs e) { RefreshButtonStates(); if (listViewUsers.SelectedItems.Count > 0) { LastSelectedIndex = listViewUsers.SelectedItems[0].Index; } else { LastSelectedIndex = -1; } } private void btnEdit_Click(object sender, EventArgs e) { Forms.EditSelectedUser dlg = new Forms.EditSelectedUser(); dlg.CurrentEditUser = (User)listViewUsers.SelectedItems[0].Tag; dlg.Session = session; dlg.ShowDialog(); ListUsers(); } private void listViewUsers_DoubleClick(object sender, EventArgs e) { btnEdit_Click (sender, e); } private void btnAdd_Click(object sender, EventArgs e) { Forms.EditSelectedUser dlg; dlg = new Forms.EditSelectedUser(); dlg.Session = session; dlg.CurrentEditUser = new User(); dlg.ShowDialog(); ListUsers(); } private void btnDelete_Click(object sender, EventArgs e) { Object Selecteduser = listViewUsers.SelectedItems[0].Tag; Config.FluentCommon.DeleteFromDb(session, Selecteduser); ListUsers(); } } }