tbf/TestBenchFramework/Forms/EditUsers.cs
2015-04-15 20:32:56 +02:00

124 lines
3.5 KiB
C#

///
/// Copyright (c) 2013-2015 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using NHibernate;
using TBF.Entities;
namespace TBF.Forms
{
public partial class EditUsers: Form
{
NHibernate.ISession session;
IList<User> ListOfUsers;
int LastSelectedIndex;
public EditUsers()
{
InitializeComponent();
}
private void EditUsers_Activated(object sender, EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
session = FluentCommon.CreateSession(Database.Users);
ListUsers();
RefreshButtonStates();
}
public void ListUsers()
{
Cursor.Current = Cursors.WaitCursor;
if (User.CurrentUser.IsMemberOf(Grp.GID.Administrators) || User.CurrentUser.IsMemberOf(Grp.GID.HeadOfLab))
{
/// Admin and HeadOfLab can edit all users
ListOfUsers = session.CreateQuery("FROM User")
.List<User>();
}
else
{
/// user can only edit their own data
ListOfUsers = session.CreateQuery("FROM User WHERE id= :CurrentUserId")
.SetParameter("CurrentUserId", User.CurrentUser.Id)
.List<User>();
}
listViewUsers.Items.Clear();
foreach (var person in ListOfUsers)
{
ListViewItem item = new ListViewItem(person.Name);
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 Entities.User();
dlg.ShowDialog();
ListUsers();
}
private void btnDelete_Click(object sender, EventArgs e)
{
Object Selecteduser = listViewUsers.SelectedItems[0].Tag;
FluentCommon.DeleteFromDb(session, Selecteduser);
ListUsers();
}
}
}