UserAddOrEditVM.cs
3.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
using HandyControl.Controls;
using HHECS.Application.Enums;
using HHECS.BllModel;
using HHECS.Infrastructure.CommonHelper;
using HHECS.Model.Dtos;
using HHECS.Model.Entities;
using HHECS.WinCommon.ViewModel;
using Newtonsoft.Json;
using System;
using System.Collections.ObjectModel;
using System.Linq;
namespace HHECS.WinClient.View.UserPermission
{
public class UserAddOrEditVM : VMBase
{
public bool CanEnable { get; set; } = true;
public bool IsReadOnly { get; set; } = true;
public string Title { get; set; }
public User User { get; set; }
public ObservableCollection<RoleDto> RoleDtos { get; set; } = new ObservableCollection<RoleDto>();
public UserAddOrEditVM(string userCode)
{
Init(userCode);
}
private void Init(string userCode)
{
var result = App.PermissionService.GetAllRole();
if (!result.Success)
{
MessageBox.Show("获取角色信息出错");
CanEnable = false;
return;
}
result.Data.ForEach(x =>
{
RoleDtos.Add(ObjectHelper.TransReflection<Role, RoleDto>(x));
});
if (userCode?.Length > 0)
{
Title = "编辑";
var userResult = App.PermissionService.GetUserWithRoles(userCode);
if (userResult.Success)
{
foreach (var item in RoleDtos)
{
item.IsSelected = userResult.Data.Roles.Exists(t => t.Id == item.Id);
}
}
else
{
MessageBox.Show($"获取用户角色失败:{userResult.Msg}");
CanEnable = false;
}
}
else
{
Title = "新增";
IsReadOnly = false;
User = new User();
}
}
public void Save()
{
//用户名、编码、密码和角色必要
if (String.IsNullOrWhiteSpace(User.UserName) || String.IsNullOrWhiteSpace(User.UserCode) || String.IsNullOrWhiteSpace(User.Password) || !RoleDtos.Any(t => t.IsSelected == true))
{
MessageBox.Show("要求必须提供用户名、用户编码、密码和至少一种角色");
return;
}
var title = User.Id == 0 ? Application.Enums.Title.UserAdd : Application.Enums.Title.UserEdit;
var a = new
{
UserCode = User.UserCode,
UserName = User.UserName,
};
BllResult<User> result = App.PermissionService.InsertOrUpdateUserWithRoles(User, RoleDtos.Where(t => t.IsSelected == true).MapListTo<RoleDto, Role>().ToList());
if (result.Success)
{
App.LogService.LogOperation(title, ModuleConst.User, $"用户保存成功.数据:{JsonConvert.SerializeObject(a)}", result.Code.ToString(), App.User.UserCode);
MessageBox.Show("保存成功");
User.Id = result.Data.Id;
}
else
{
App.LogService.LogOperation(title, ModuleConst.User, $"用户保存失败.数据:{JsonConvert.SerializeObject(a)},详情:{result.Msg}", result.Code.ToString(), App.User.UserCode);
MessageBox.Show($"保存失败:{result.Msg}");
}
}
}
}