CeramicProjectTool/ViewModel/MKConfigViewModel.cs

111 lines
3.0 KiB
C#
Raw Normal View History

using CeramicProjectTool.Model;
using CeramicProjectTool.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CeramicProjectTool.ViewModel
{
public class MKConfigViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
/// <summary>
/// 选中的模块信息
/// </summary>
private ModuleModel? selectedModulel;
public ModuleModel? SelectedModule
{
get { return selectedModulel; }
set
{
selectedModulel = value;
OnPropertyChanged(nameof(SelectedModule));
}
}
public Task<List<ModuleModel>> GetMkList()
{
Task<List<ModuleModel>> modelList = DBHelper.GetModuleList();
return modelList;
//modelList.ContinueWith((task) =>
//{
// ModelListView.Dispatcher.Invoke(() =>
// {
// ModelListView.ItemsSource = task.Result;
// });
//});
}
public void SetSelectMKModel(ModuleModel model)
{
SelectedModule = model;
}
public Task<List<PermissonModel>> GetPermissons()
{
var result = DBHelper.GetPermissons();
return result;
}
public Task<List<PermissonModel>> GetPermissons(string searchText)
{
var result = DBHelper.GetPermissonsByModule(searchText);
return result;
}
public async Task UpdateModule(ModuleModel module)
{
await DBHelper.UpdateModule(module);
}
public async Task UpdatePermissons(List<PermissonModel> permissons)
{
await DBHelper.UpdatePermissons(permissons);
}
2024-05-23 16:41:06 +08:00
internal async Task InsertPermissons(List<PermissonModel> addedPermissons)
{
var _db = DBHelper.Db;
try
{
_db.Ado.BeginTran();
await _db.Insertable(addedPermissons).ExecuteCommandAsync();
_db.Ado.CommitTran();
}
catch (Exception)
{
_db.Ado.RollbackTran();
throw;
}
}
internal async Task DeletePermissons(List<int> permissonIds)
{
var _db = DBHelper.Db;
try
{
_db.Ado.BeginTran();
await _db.Deleteable<PermissonModel>().Where(x => permissonIds.Contains(x.Id)).ExecuteCommandAsync();
_db.Ado.CommitTran();
}
catch (Exception)
{
_db.Ado.RollbackTran();
throw;
}
}
}
}