public void ModifyAccount(AccountDto accountDto) { ValidateParameter.Validate(accountDto); var account = accountDto.ConvertToModel<AccountDto, Account>(); var accountResult = Query.FindOne(FilterFactory.Create<Account>(internalAccount => internalAccount.Id == account.Id)); if (accountResult == null) { throw new BusinessException($"用户{account.Name}可能已被禁用或删除"); } if ((account.LoginPassword + "").Length > 0) { var newPassword = PasswordUtil.CreateDbPassword(account.LoginPassword); accountResult.ModifyPassword(newPassword); } if (accountResult.AccountRoles.Any()) { accountResult.AccountRoles.ToList().ForEach(role => { role.Remove(); }); } accountResult.AddRole(account.AccountRoles.Select(role => role.RoleId).ToArray()); Repository.Create<Account>().Update(accountResult); UnitOfWork.Commit(); }
public void AddNewAccount(AccountDto accountDto) { ValidateParameter.Validate(accountDto); var account = accountDto.ConvertToModel<AccountDto, Account>(); AccountType accountType; var enumConst = Enum.GetName(typeof(AccountType), account.IsAdmin ? "2"/*管理员*/ : "1"/*用户*/); if (!Enum.TryParse(enumConst, true, out accountType)) { throw new BusinessException($"类型{enumConst}不是有效的枚举类型"); } var internalNewAccount = new Account(account.Name, PasswordUtil.CreateDbPassword(account.LoginPassword), accountType); internalNewAccount.AddRole(account.AccountRoles.Select(role => role.RoleId).ToArray()); Repository.Create<Account>().Add(internalNewAccount); UnitOfWork.Commit(); }