1
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

149 lines
5.0 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using HighWayIot.Log4net;
using HighWayIot.Repository.domain;
using HighWayIot.Repository.service;
using HighWayIot.Winform.Business;
using HighWayIot.Winform.UserControlPages.SysConfigPages;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HighWayIot.Winform.UserControlPages.SysConfigPages
{
public partial class RoleConfigPage : UserControl
{
SysUserRoleService roleService = SysUserRoleService.Instance;
private static LogHelper logger = LogHelper.Instance;
/// <summary>
/// 数据库实体类列表
/// </summary>
private List<SysRoleEntity> List = new List<SysRoleEntity>();
/// <summary>
/// XML读取类
/// </summary>
XmlUtil xmlUtil = XmlUtil.Instance;
/// <summary>
/// 页面规则偏移量配置
/// </summary>
List<RoleConfig> ConfigList;
public RoleConfigPage()
{
InitializeComponent();
Init();
}
private void Init()
{
RoleDataGridView.AutoGenerateColumns = false;
List = roleService.GetRoleInfos();
ConfigList = xmlUtil.ConfigReader();
//设置列数量
RoleDataGridView.ColumnCount = ConfigList.Count + 1;
//设置列头名称
RoleDataGridView.Columns[0].Name = "RoleName";
RoleDataGridView.Columns[0].DataPropertyName = "RoleName";
RoleDataGridView.Columns[0].HeaderText = "角色名";
RoleDataGridView.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet;
RoleDataGridView.Columns[0].Width = 100;
for (int i = 0; i < ConfigList.Count; i++)
{
RoleDataGridView.Columns[i + 1].Name = ConfigList[i].PageName;
RoleDataGridView.Columns[i + 1].DataPropertyName = ConfigList[i].PageName;
RoleDataGridView.Columns[i + 1].HeaderText = ConfigList[i].PageName;
RoleDataGridView.Columns[i + 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
GridViewRefresh();
}
private void UpdateRole_Click(object sender, EventArgs e)
{
//写的很烂
int index = RoleDataGridView.CurrentRow.Index;
//前端数据顺序绑定的时候就是数据库的顺序,所以可以这么写。
RoleUpdateForm form = new RoleUpdateForm(List[index]);
form.ShowDialog();
List = roleService.GetRoleInfos();
GridViewRefresh();
}
private void AddRole_Click(object sender, EventArgs e)
{
RoleAddForm form = new RoleAddForm();
form.ShowDialog();
List = roleService.GetRoleInfos();
GridViewRefresh();
}
private void DeleteRole_Click(object sender, EventArgs e)
{
//写的很烂
int index = RoleDataGridView.CurrentRow.Index;
if (MessageBox.Show($"确认要删除{List[index].RoleName}该角色信息?", "确定?", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
//前端数据顺序绑定的时候就是数据库的顺序,所以可以这么写。
roleService.DeleteRoleInfoById(List[index].Id);
List = roleService.GetRoleInfos();
GridViewRefresh();
}
}
/// <summary>
/// 刷新列
/// </summary>
private void GridViewRefresh()
{
RoleDataGridView.Rows.Clear();
//用户名部分初始化赋值
for (int i = 0; i < List.Count; i++)
{
RoleDataGridView.Rows.Add();
RoleDataGridView.Rows[i].Cells[0].Value = List[i].RoleName;
}
//权限部分初始化赋值
for (int rowIndex = 0; rowIndex < List.Count; rowIndex++)
{
char[] roleChars = List[rowIndex].RoleSet.ToCharArray();
for (int columnIndex = 1; columnIndex < RoleDataGridView.Columns.Count; columnIndex++)
{
// 获取当前单元格
DataGridViewCell cell = RoleDataGridView.Rows[rowIndex].Cells[columnIndex];
// 获取列名
string columnName = RoleDataGridView.Columns[columnIndex].Name;
try
{
RoleDataGridView.Rows[rowIndex].Cells[columnIndex].Value =
roleChars[ConfigList.Where(x => x.PageName == columnName).First().RoleIndex] == '1' ? "√" : "";
}
catch (Exception ex)
{
logger.Error("用户角色初始化发生错误请检查Configuration.xml", ex);
}
}
}
}
}
}