using System;
|
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
using System.Data;
|
using System.IO;
|
using HMI.Core.Util;
|
using HMI.MenuManage.Entity;
|
using HMI.MenuManage.Util;
|
using HMI.Core.Entity;
|
|
namespace HMI.MenuManage.Model
|
{
|
public class UserManageModel : NotifyBase
|
{
|
public SqliteHelper sqliteHelper;
|
|
private ObservableCollection<UserData> _DataSource;
|
|
public ObservableCollection<UserData> DataSource
|
{
|
get { return _DataSource; }
|
set { Set(ref _DataSource, value); }
|
}
|
private UserData _SelectedUser;
|
|
public UserData SelectedUser
|
{
|
get { return _SelectedUser; }
|
set
|
{
|
Set(ref _SelectedUser, value);
|
LoadUserRole();
|
}
|
}
|
|
private ObservableCollection<UserRoleRel> _Roles;
|
public ObservableCollection<UserRoleRel> Roles
|
{
|
get => _Roles;
|
set { Set(ref _Roles, value); }
|
}
|
|
public UserManageModel()
|
{
|
if (!File.Exists(PathHelper.DatabasePath))
|
{
|
SqliteHelper.CreateDatabase(PathHelper.DatabasePath);
|
}
|
sqliteHelper = new SqliteHelper(PathHelper.DatabasePath);
|
sqliteHelper.ExecuteSql(@"CREATE TABLE IF NOT EXISTS user (
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
username TEXT NOT NULL,
|
password TEXT NOT NULL,
|
name TEXT,
|
UNIQUE(username)
|
);
|
CREATE TABLE IF NOT EXISTS user_role_rel (
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
username TEXT NOT NULL,
|
roleCode TEXT NOT NULL,
|
UNIQUE(username,roleCode)
|
);
|
");
|
}
|
|
public void LoadData()
|
{
|
ObservableCollection<UserData> data = new ObservableCollection<UserData>();
|
DataTable dt = sqliteHelper.GetDataTable("SELECT * FROM user Order By id;");
|
if (dt != null)
|
{
|
foreach (DataRow dr in dt.Rows)
|
{
|
var menu = new UserData
|
{
|
Id = dr["id"].ToString(),
|
Username = dr["username"].ToString(),
|
Password = dr["password"].ToString(),
|
Name = dr["name"].ToString()
|
};
|
data.Add(menu);
|
}
|
}
|
DataSource = data;
|
}
|
|
public void LoadUserRole()
|
{
|
Roles = SelectedUser == null ? new ObservableCollection<UserRoleRel>()
|
: UserRoleRelHelper.SelectUserRoleData(sqliteHelper, SelectedUser.Username);
|
}
|
|
public void SaveUserRole()
|
{
|
UserRoleRelHelper.SaveUserRoleRel(sqliteHelper, Roles, SelectedUser, null, null);
|
}
|
}
|
}
|