76 lines
2.2 KiB
C#
76 lines
2.2 KiB
C#
using LinqToDB;
|
|
using MasaBlazorApp3.DataAccess.Dao;
|
|
using MasaBlazorApp3.Pojo;
|
|
using MasaBlazorApp3.Pojo.Config;
|
|
using Microsoft.Extensions.Options;
|
|
using System.Linq;
|
|
|
|
namespace MasaBlazorApp3.DataAccess.Impl
|
|
{
|
|
public class RoleDao : IRoleDao
|
|
{
|
|
|
|
private AppDataConnection _connection;
|
|
private readonly SettingConfig _setting;
|
|
|
|
public RoleDao(AppDataConnection connection, IOptions<SettingConfig> setting) { _connection = connection; _setting = setting.Value; }
|
|
|
|
public async Task<Role> GetRoleById(int id)
|
|
{
|
|
return await _connection.Role.AsQueryable().FirstAsync(x => x.Id == id);
|
|
}
|
|
|
|
|
|
public int InsertRole(Role role)
|
|
{
|
|
role.MachineId = _setting.machineId;
|
|
return _connection.InsertWithInt32Identity(role);
|
|
}
|
|
|
|
public bool UpdateRole(Role role)
|
|
{
|
|
int r = _connection.Role
|
|
.Where(r => r.Id == role.Id)
|
|
.Set(r => r.RoleName, role.RoleName)
|
|
.Set(r => r.permissions, role.permissions)
|
|
.Update();
|
|
return r > 0;
|
|
}
|
|
|
|
public bool DeleteRole(int id)
|
|
{
|
|
return _connection.Role.Where(r => r.Id ==id).Delete() > 0;
|
|
}
|
|
|
|
public async Task<PageData<Role>> GetRolesByName(string name, int? take, int? skip)
|
|
{
|
|
var query = _connection.Role.AsQueryable();
|
|
|
|
if (!String.IsNullOrEmpty(name))
|
|
{
|
|
query = query.Where(r => r.RoleName.IndexOf(name) > -1);
|
|
}
|
|
query = query.Where(r => r.MachineId == _setting.machineId);
|
|
|
|
List<Role> list = await query
|
|
.OrderBy(r => r.Id)
|
|
.Skip((int)skip)
|
|
.Take((int)take)
|
|
.ToListAsync();
|
|
|
|
int pagedData = await query.CountAsync();
|
|
return new PageData<Role>()
|
|
{
|
|
|
|
TotalDesserts = pagedData,
|
|
Desserts = list
|
|
};
|
|
}
|
|
|
|
public async Task<List<Role>> GetAllRoles()
|
|
{
|
|
return await _connection.Role.Where(r => r.MachineId == _setting.machineId).ToListAsync();
|
|
}
|
|
}
|
|
}
|