public int GetUserCountForGroup(AuthorityGroup group) { var q = new HqlQuery("select count(elements(g.Users)) from AuthorityGroup g"); q.Conditions.Add(new HqlCondition("g = ?", group)); return((int)ExecuteHqlUnique <long>(q)); }
private static void CreateSysAdminUser(AuthorityGroup adminGroup, SetupCommandLine cmdLine, IPersistenceContext context, TextWriter log) { try { // create the sa user, if doesn't already exist IUserBroker userBroker = context.GetBroker<IUserBroker>(); UserSearchCriteria where = new UserSearchCriteria(); where.UserName.EqualTo(cmdLine.SysAdminUserName); userBroker.FindOne(where); log.WriteLine(string.Format("User '{0}' already exists.", cmdLine.SysAdminUserName)); } catch (EntityNotFoundException) { HashedSet<AuthorityGroup> groups = new HashedSet<AuthorityGroup> { adminGroup }; // create sa user using initial password, set to expire never User saUser = User.CreateNewUser( new UserInfo(cmdLine.SysAdminUserName, cmdLine.SysAdminDisplayName, null, null, null), Password.CreatePassword(cmdLine.SysAdminInitialPassword, null), groups); context.Lock(saUser, DirtyState.New); } }
/// <summary> /// 添加权限分组 /// </summary> /// <param name="authorityGroup">权限信息</param> /// <returns>执行结果</returns> static Result <AuthorityGroup> AddAuthorityGroup(AuthorityGroup authorityGroup) { #region 级 long parentGroupId = authorityGroup.Parent == null ? 0 : authorityGroup.Parent.SysNo; AuthorityGroup parentGroup = null; if (parentGroupId > 0) { IQuery parentQuery = QueryFactory.Create <AuthorityGroupQuery>(c => c.SysNo == parentGroupId); parentGroup = authorityGroupRepository.Get(parentQuery); if (parentGroup == null) { return(Result <AuthorityGroup> .FailedResult("请选择正确的上级分组")); } } authorityGroup.SetParentGroup(parentGroup); #endregion authorityGroup.Save();//保存 var result = Result <AuthorityGroup> .SuccessResult("添加成功"); result.Data = authorityGroup; return(result); }
private static void CreateSysAdminUser(AuthorityGroup adminGroup, SetupCommandLine cmdLine, IPersistenceContext context, TextWriter log) { try { // create the sa user, if doesn't already exist IUserBroker userBroker = context.GetBroker <IUserBroker>(); UserSearchCriteria where = new UserSearchCriteria(); where.UserName.EqualTo(cmdLine.SysAdminUserName); userBroker.FindOne(where); log.WriteLine(string.Format("User '{0}' already exists.", cmdLine.SysAdminUserName)); } catch (EntityNotFoundException) { HashedSet <AuthorityGroup> groups = new HashedSet <AuthorityGroup> { adminGroup }; // create sa user using initial password, set to expire never User saUser = User.CreateNewUser( new UserInfo(cmdLine.SysAdminUserName, cmdLine.SysAdminDisplayName, null, null, null), Password.CreatePassword(cmdLine.SysAdminInitialPassword, null), groups); context.Lock(saUser, DirtyState.New); } }
private void GetData() { //Get Data Table AuthorityGroup AuthorityGroup authorityGroup = _authorityGroupRepository.Get(_id); txtAuthorityGroupName.Text = authorityGroup.AuthorityGroupName; chkUsing.Checked = (authorityGroup.Status == GlobalConstants.StatusValue.Using); }
private void btnSave_Click(object sender, EventArgs e) { try { if (!CheckData()) { return; } //Table AuthorityGroup AuthorityGroup authorityGroup = new AuthorityGroup(); authorityGroup.AuthorityGroupName = txtAuthorityGroupName.Text.Trim(); authorityGroup.Status = (chkUsing.Checked ? GlobalConstants.StatusValue.Using : GlobalConstants.StatusValue.NoUse); _authorityGroupRepository.Save(authorityGroup); if (!String.IsNullOrEmpty(_authorityGroupRepository.id)) { for (int i = 0; i < dgvDuLieu.RowCount; i++) { if (dgvDuLieu.Rows[i].Cells["Assign"].Value.ToString() == "1") { ProgramFunctionAuthority programFunctionAuthority = new ProgramFunctionAuthority(); programFunctionAuthority.ProgramName = dgvDuLieu.Rows[i].Cells["ProgramName"].Value.ToString(); programFunctionAuthority.FunctionName = dgvDuLieu.Rows[i].Cells["FunctionName"].Value.ToString(); programFunctionAuthority.AuthorityGroupID = _authorityGroupRepository.id; _programFunctionAuthorityRepository.Save(programFunctionAuthority); } else { _programFunctionAuthorityRepository.DeleteByProgramAndFunction(dgvDuLieu.Rows[i].Cells["ProgramName"].Value.ToString(), dgvDuLieu.Rows[i].Cells["FunctionName"].Value.ToString()); } } } UnitOfWork unitOfWork = new UnitOfWork(_projectDataContext); int result = unitOfWork.Complete(); if (result > 0) { if (String.IsNullOrEmpty(_id)) { XtraMessageBox.Show(LanguageTranslate.ChangeLanguageText("Lưu thành công"), LanguageTranslate.ChangeLanguageText("Thông báo")); Clear(); } else { DialogResult = DialogResult.OK; Close(); } } else { XtraMessageBox.Show(LanguageTranslate.ChangeLanguageText("Lưu thất bại"), LanguageTranslate.ChangeLanguageText("Thông báo"), MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } catch (Exception ex) { XtraMessageBox.Show(LanguageTranslate.ChangeLanguageText("Lưu thất bại"), LanguageTranslate.ChangeLanguageText("Thông báo"), MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } }
internal AuthorityGroupSummary CreateAuthorityGroupSummary(AuthorityGroup authorityGroup) { return new AuthorityGroupSummary( authorityGroup.GetRef(), authorityGroup.Name, authorityGroup.Description, authorityGroup.BuiltIn, authorityGroup.DataGroup); }
internal AuthorityGroupSummary CreateAuthorityGroupSummary(AuthorityGroup authorityGroup) { return(new AuthorityGroupSummary( authorityGroup.GetRef(), authorityGroup.Name, authorityGroup.Description, authorityGroup.BuiltIn, authorityGroup.DataGroup)); }
/// <summary> /// 保存权限分组 /// </summary> /// <param name="authorityGroup">权限分组对象</param> /// <returns>执行结果</returns> public static Result <AuthorityGroup> SaveAuthorityGroup(AuthorityGroup authorityGroup) { if (authorityGroup == null) { return(Result <AuthorityGroup> .FailedResult("没有指定任何要保存的分组信息")); } if (authorityGroup.SysNo > 0) { return(UpdateAuthorityGroup(authorityGroup)); } return(AddAuthorityGroup(authorityGroup)); }
internal AuthorityGroupDetail CreateAuthorityGroupDetail(AuthorityGroup authorityGroup) { AuthorityTokenAssembler assembler = new AuthorityTokenAssembler(); List <AuthorityTokenSummary> tokens = CollectionUtils.Map <AuthorityToken, AuthorityTokenSummary>( authorityGroup.AuthorityTokens, assembler.GetAuthorityTokenSummary); return(new AuthorityGroupDetail( authorityGroup.GetRef(), authorityGroup.Name, authorityGroup.Description, authorityGroup.DataGroup, tokens)); }
public void RunApplication(string[] args) { SetupCommandLine cmdLine = new SetupCommandLine(); try { cmdLine.Parse(args); using (PersistenceScope scope = new PersistenceScope(PersistenceContextType.Update)) { ((IUpdateContext)PersistenceScope.CurrentContext).ChangeSetRecorder.OperationName = GetType().FullName; // import authority tokens AuthorityTokenImporter tokenImporter = new AuthorityTokenImporter(); IList <AuthorityToken> allTokens = tokenImporter.ImportFromPlugins((IUpdateContext)PersistenceScope.CurrentContext); // create the sys admin group, which has all tokens assigned by default string[] tokenStrings = CollectionUtils.Map <AuthorityToken, string, List <string> >(allTokens, t => t.Name).ToArray(); AuthorityGroupDefinition adminGroupDef = new AuthorityGroupDefinition(cmdLine.SysAdminGroup, cmdLine.SysAdminGroup, false, tokenStrings); AuthorityGroupImporter groupImporter = new AuthorityGroupImporter(); IList <AuthorityGroup> groups = groupImporter.Import(new AuthorityGroupDefinition[] { adminGroupDef }, (IUpdateContext)PersistenceScope.CurrentContext); // find the admin group entity that was just created AuthorityGroup adminGroup = CollectionUtils.SelectFirst(groups, g => g.Name == cmdLine.SysAdminGroup); // create the "sa" user CreateSysAdminUser(adminGroup, cmdLine, PersistenceScope.CurrentContext, Console.Out); // optionally import other default authority groups defined in other plugins if (cmdLine.ImportDefaultAuthorityGroups) { groupImporter.ImportFromPlugins((IUpdateContext)PersistenceScope.CurrentContext); } scope.Complete(); } } catch (CommandLineException e) { Console.WriteLine(e.Message); cmdLine.PrintUsage(Console.Out); } }
internal AuthorityGroupDetail CreateAuthorityGroupDetail(AuthorityGroup authorityGroup) { AuthorityTokenAssembler assembler = new AuthorityTokenAssembler(); List<AuthorityTokenSummary> tokens = CollectionUtils.Map<AuthorityToken, AuthorityTokenSummary>( authorityGroup.AuthorityTokens, assembler.GetAuthorityTokenSummary); return new AuthorityGroupDetail( authorityGroup.GetRef(), authorityGroup.Name, authorityGroup.Description, authorityGroup.DataGroup, tokens); }
/// <summary> /// Import authority groups. /// </summary> /// <remarks> /// Creates any authority groups that do not already exist. /// This method performs an additive import. It will never remove an existing authority group or /// remove authority tokens from an existing group. /// </remarks> /// <param name="groupDefs"></param> /// <param name="context"></param> public IList <AuthorityGroup> Import(IEnumerable <AuthorityGroupDefinition> groupDefs, IUpdateContext context) { // first load all the existing tokens into memory // there should not be that many tokens ( < 500), so this should not be a problem IAuthorityTokenBroker tokenBroker = context.GetBroker <IAuthorityTokenBroker>(); IList <AuthorityToken> existingTokens = tokenBroker.FindAll(); // load existing groups IAuthorityGroupBroker groupBroker = context.GetBroker <IAuthorityGroupBroker>(); IList <AuthorityGroup> existingGroups = groupBroker.FindAll(); foreach (AuthorityGroupDefinition groupDef in groupDefs) { AuthorityGroup group = CollectionUtils.SelectFirst(existingGroups, g => g.Name == groupDef.Name); // if group does not exist, create it if (group == null) { group = new AuthorityGroup { Name = groupDef.Name, Description = groupDef.Description, DataGroup = groupDef.DataGroup }; context.Lock(group, DirtyState.New); existingGroups.Add(group); } // process all token nodes contained in group foreach (string tokenName in groupDef.Tokens) { AuthorityToken token = CollectionUtils.SelectFirst(existingTokens, t => t.Name == tokenName); // ignore non-existent tokens if (token == null) { continue; } // add the token to the group group.AuthorityTokens.Add(token); } } return(existingGroups); }
public AddAuthorityGroupResponse AddAuthorityGroup(AddAuthorityGroupRequest request) { // create new group var authorityGroup = new AuthorityGroup(); // set properties from request var assembler = new AuthorityGroupAssembler(); assembler.UpdateAuthorityGroup(authorityGroup, request.AuthorityGroupDetail, PersistenceContext); // save PersistenceContext.Lock(authorityGroup, DirtyState.New); PersistenceContext.SynchState(); return(new AddAuthorityGroupResponse(assembler.CreateAuthorityGroupSummary(authorityGroup))); }
/// <summary> /// Import authority groups. /// </summary> /// <remarks> /// Creates any authority groups that do not already exist. /// This method performs an additive import. It will never remove an existing authority group or /// remove authority tokens from an existing group. /// </remarks> /// <param name="groupDefs"></param> /// <param name="context"></param> public IList<AuthorityGroup> Import(IEnumerable<AuthorityGroupDefinition> groupDefs, IUpdateContext context) { // first load all the existing tokens into memory // there should not be that many tokens ( < 500), so this should not be a problem IAuthorityTokenBroker tokenBroker = context.GetBroker<IAuthorityTokenBroker>(); IList<AuthorityToken> existingTokens = tokenBroker.FindAll(); // load existing groups IAuthorityGroupBroker groupBroker = context.GetBroker<IAuthorityGroupBroker>(); IList<AuthorityGroup> existingGroups = groupBroker.FindAll(); foreach (AuthorityGroupDefinition groupDef in groupDefs) { AuthorityGroup group = CollectionUtils.SelectFirst(existingGroups, g => g.Name == groupDef.Name); // if group does not exist, create it if (group == null) { group = new AuthorityGroup { Name = groupDef.Name, Description = groupDef.Description, DataGroup = groupDef.DataGroup }; context.Lock(group, DirtyState.New); existingGroups.Add(group); } // process all token nodes contained in group foreach (string tokenName in groupDef.Tokens) { AuthorityToken token = CollectionUtils.SelectFirst(existingTokens, t => t.Name == tokenName); // ignore non-existent tokens if (token == null) continue; // add the token to the group group.AuthorityTokens.Add(token); } } return existingGroups; }
public AuthorityGroup Update(AuthorityGroup AuthorityGroup) { GetDbConnection().Query <AuthorityGroup>("UPDATE authority_group " + "SET " + "name = @Name, " + "description = @Description, " + "enabled = @Enabled " + "WHERE id = @Id", new { Id = AuthorityGroup.Id, Name = AuthorityGroup.Name, AuthorityGroup.Description, AuthorityGroup.Enabled }); return(FindById(AuthorityGroup.Id)); }
public AuthorityGroup Insert(AuthorityGroup AuthorityGroup) { int AffectedRows = GetDbConnection().Execute("INSERT INTO authority_group (name, description, enabled) " + "VALUES (@Name, @Description, @Enabled)", new { Name = AuthorityGroup.Name, AuthorityGroup.Description, AuthorityGroup.Enabled }); if (AffectedRows > 0) { long Id = GetDbConnection().Query <long>("SELECT LAST_INSERT_ID()").Single(); return(FindById(Id)); } return(null); }
public BusinessLayerResult <AuthorityGroup> GetAuthorityById(int id) { BusinessLayerResult <AuthorityGroup> result = new BusinessLayerResult <AuthorityGroup>(); result.Result = true; AuthorityGroup returnModel = new AuthorityGroup(); Exception ex = new Exception(); bool resultState = _repository.GetById(id, ref returnModel, ref ex); if (!resultState) { result.Result = resultState; result.AddError(ErrorMessageCode.TryCatchMessage, ex.Message); } result.Object = returnModel; return(result); }
/// <summary> /// 修改分组排序 /// </summary> /// <param name="sortIndexInfo">排序修改信息</param> /// <returns></returns> public static Result ModifyAuthorityGroupSort(long groupId, int newSort) { #region 参数判断 if (groupId <= 0) { return(Result.FailedResult("没有指定要修改的分组")); } #endregion AuthorityGroup group = GetAuthorityGroup(groupId); if (group == null) { return(Result.FailedResult("没有指定要修改的分组")); } group.ModifySortIndex(newSort); group.Save(); return(Result.SuccessResult("修改成功")); }
internal void UpdateAuthorityGroup(AuthorityGroup authorityGroup, AuthorityGroupDetail detail, IPersistenceContext persistenceContext) { authorityGroup.Name = detail.Name; authorityGroup.Description = detail.Description; authorityGroup.DataGroup = detail.DataGroup; authorityGroup.AuthorityTokens.Clear(); if (detail.AuthorityTokens.Count > 0) { // process authority tokens List <string> tokenNames = CollectionUtils.Map <AuthorityTokenSummary, string>( detail.AuthorityTokens, token => token.Name); AuthorityTokenSearchCriteria where = new AuthorityTokenSearchCriteria(); where.Name.In(tokenNames); IList <AuthorityToken> authTokens = persistenceContext.GetBroker <IAuthorityTokenBroker>().Find(where); authorityGroup.AuthorityTokens.AddAll(authTokens); } }
internal void UpdateAuthorityGroup(AuthorityGroup authorityGroup, AuthorityGroupDetail detail, IPersistenceContext persistenceContext) { authorityGroup.Name = detail.Name; authorityGroup.Description = detail.Description; authorityGroup.DataGroup = detail.DataGroup; authorityGroup.AuthorityTokens.Clear(); if (detail.AuthorityTokens.Count > 0) { // process authority tokens List<string> tokenNames = CollectionUtils.Map<AuthorityTokenSummary, string>( detail.AuthorityTokens, token => token.Name); AuthorityTokenSearchCriteria where = new AuthorityTokenSearchCriteria(); where.Name.In(tokenNames); IList<AuthorityToken> authTokens = persistenceContext.GetBroker<IAuthorityTokenBroker>().Find(where); authorityGroup.AuthorityTokens.AddAll(authTokens); } }
protected override void Import(UserData data, IUpdateContext context) { UserInfo info = new UserInfo(data.UserName, data.DisplayName, data.EmailAddress, data.ValidFrom, data.ValidUntil); User user = LoadOrCreateUser(info, context); user.Enabled = data.Enabled; if (data.AuthorityGroups != null) { foreach (string group in data.AuthorityGroups) { AuthorityGroupSearchCriteria where = new AuthorityGroupSearchCriteria(); where.Name.EqualTo(group); AuthorityGroup authGroup = CollectionUtils.FirstElement(context.GetBroker <IAuthorityGroupBroker>().Find(where)); if (authGroup != null) { user.AuthorityGroups.Add(authGroup); } } } }
private bool CheckData() { if (txtAuthorityGroupName.Text.Trim() == "") { XtraMessageBox.Show(LanguageTranslate.ChangeLanguageText("Chưa điền dữ liệu"), LanguageTranslate.ChangeLanguageText("Thông báo"), MessageBoxButtons.OK, MessageBoxIcon.Warning); txtAuthorityGroupName.Focus(); return(false); } AuthorityGroup authorityGroup = _authorityGroupRepository.FirstOrDefault(_ => _.AuthorityGroupName.Equals(txtAuthorityGroupName.Text.Trim())); if (authorityGroup != null && ( String.IsNullOrEmpty(_id) || (!String.IsNullOrEmpty(_id) && txtAuthorityGroupName.Text.Trim() != authorityGroup.AuthorityGroupName) )) { XtraMessageBox.Show(LanguageTranslate.ChangeLanguageText("Dữ liệu đã tồn tại"), LanguageTranslate.ChangeLanguageText("Thông báo"), MessageBoxButtons.OK, MessageBoxIcon.Warning); txtAuthorityGroupName.Focus(); return(false); } return(true); }
public void Init(AuthorityGroup authorityGroup, int flag, Button btn) { try { tempAuthorityGroup = authorityGroup; tempFlag = flag; tempBtn = btn; this.tableLayoutPanel1.Controls.Clear(); switch (flag) { case 1: foreach (var item in authorityGroup.FlightPlanType) { addControls(item.Key); } break; case 2: foreach (var item in authorityGroup.AirLines) { addControls(item.Key); } break; case 3: foreach (var item in authorityGroup.Parking) { addControls(item.Key); } break; } } catch (Exception ex) { } this.Location = this.Parent.PointToClient(MousePosition); }
public void Test_CreateNewUser_WithExplicitPasswordAndGroups() { DateTime now = DateTime.Now; DateTime tomorrow = now + TimeSpan.FromDays(1); UserInfo userInfo = new UserInfo( UserAccountType.U, "foo", "Mr. Foo", "*****@*****.**", null, null); AuthorityGroup group1 = new AuthorityGroup(); AuthorityGroup group2 = new AuthorityGroup(); HashedSet <AuthorityGroup> groups = new HashedSet <AuthorityGroup>(); groups.Add(group1); groups.Add(group2); User user = User.CreateNewUser(userInfo, Password.CreatePassword(DefaultPassword, tomorrow), groups); Assert.AreEqual(userInfo.UserName, user.UserName); Assert.AreEqual(userInfo.DisplayName, user.DisplayName); Assert.AreEqual(true, user.Enabled); // enabled by default Assert.IsTrue(RoughlyEqual(now, user.CreationTime)); Assert.IsNull(user.LastLoginTime); // never logged in // password Assert.IsNotNull(user.Password); Assert.IsTrue(user.Password.Verify(DefaultPassword)); // initial password should work // password expiry time Assert.IsTrue(RoughlyEqual(tomorrow, user.Password.ExpiryTime)); // groups Assert.AreEqual(2, user.AuthorityGroups.Count); Assert.IsTrue(user.AuthorityGroups.ContainsAll(groups)); }
/// <summary> /// 更新权限分组 /// </summary> /// <param name="authorityGroup">权限信息</param> /// <returns>执行结果</returns> static Result <AuthorityGroup> UpdateAuthorityGroup(AuthorityGroup newAuthorityGroup) { AuthorityGroup authorityGroup = authorityGroupRepository.Get(QueryFactory.Create <AuthorityGroupQuery>(r => r.SysNo == newAuthorityGroup.SysNo)); if (authorityGroup == null) { return(Result <AuthorityGroup> .FailedResult("没有指定要操作的分组信息")); } //上级 long newParentGroupId = newAuthorityGroup.Parent == null ? 0 : newAuthorityGroup.Parent.SysNo; long oldParentGroupId = authorityGroup.Parent == null ? 0 : authorityGroup.Parent.SysNo; //上级改变后 if (newParentGroupId != oldParentGroupId) { AuthorityGroup parentGroup = null; if (newParentGroupId > 0) { IQuery parentQuery = QueryFactory.Create <AuthorityGroupQuery>(c => c.SysNo == newParentGroupId); parentGroup = authorityGroupRepository.Get(parentQuery); if (parentGroup == null) { return(Result <AuthorityGroup> .FailedResult("请选择正确的上级分组")); } } authorityGroup.SetParentGroup(parentGroup); } //修改信息 authorityGroup.Name = newAuthorityGroup.Name; authorityGroup.Status = newAuthorityGroup.Status; authorityGroup.Remark = newAuthorityGroup.Remark; authorityGroup.Save();//保存 var result = Result <AuthorityGroup> .SuccessResult("更新成功"); result.Data = authorityGroup; return(result); }
public AddAuthorityGroupResponse AddAuthorityGroup(AddAuthorityGroupRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.AuthorityGroupDetail, "AuthorityGroupDetail"); if (request.AuthorityGroupDetail.BuiltIn) { throw new RequestValidationException(SR.MessageCannotManageBuiltInAuthorityGroups); } // create new group var authorityGroup = new AuthorityGroup(); // set properties from request var assembler = new AuthorityGroupAssembler(); assembler.UpdateAuthorityGroup(authorityGroup, request.AuthorityGroupDetail, PersistenceContext); // save PersistenceContext.Lock(authorityGroup, DirtyState.New); PersistenceContext.SynchState(); return(new AddAuthorityGroupResponse(assembler.CreateAuthorityGroupSummary(authorityGroup))); }
public void setAuthority(string authorityId) { try { _authorityId = authorityId; if (Form_Main.allAuthorityData.TryGetValue(authorityId, out AuthorityGroup authorityGroup)) { btnAuthority.Text = authorityGroup.AuthorityName; _authorityGroup = authorityGroup; if (authorityGroup.AirLines.Count <= 0) { button3.Text = "Park"; } else { button3.Text = "Co."; } if (Form_Main.CurrentAuthorityData.TryGetValue(authorityId, out AuthorityGroup authorityGroup1)) { isOpenAuthority = true; btnAuthority.BackColor = Color.FromArgb(0, 0, 200); if (authorityGroup1.FlightPlanType.Count != 0) { if (authorityGroup1.FlightPlanType.Count < authorityGroup.FlightPlanType.Count) { btnPlanType.BackColor = Color.FromArgb(200, 200, 0); } else { btnPlanType.BackColor = Color.FromArgb(0, 0, 200); } } if (authorityGroup1.AirLines.Count != 0) { if (authorityGroup1.AirLines.Count < authorityGroup.AirLines.Count) { button3.BackColor = Color.FromArgb(200, 200, 0); } else { button3.BackColor = Color.FromArgb(0, 0, 200); } } if (authorityGroup1.Parking.Count != 0) { if (authorityGroup1.Parking.Count < authorityGroup.Parking.Count) { button3.BackColor = Color.FromArgb(200, 200, 0); } else { button3.BackColor = Color.FromArgb(0, 0, 200); } } } } } catch (Exception ex) { } }
/// <summary> /// /// <summary> /// 注册对象映射 /// </summary> /// </summary> public void Register() { var cfg = new MapperConfigurationExpression(); cfg.ShouldMapProperty = p => p.GetMethod.IsPublic || p.GetMethod.IsAssembly || p.GetMethod.IsPrivate || p.GetMethod.IsFamilyAndAssembly || p.GetMethod.IsFamily || p.GetMethod.IsFamilyOrAssembly; #region Sys #region User cfg.CreateMap <UserEntity, User>().ForMember(u => u.Contact, u => u.ResolveUsing(ue => new Contact(mobile: ue.Mobile, email: ue.Email, qq: ue.QQ))); cfg.CreateMap <User, UserEntity>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ)); cfg.CreateMap <User, AdminUser>(); //admin user cfg.CreateMap <AdminUser, AdminUserDto>(); cfg.CreateMap <AdminUserDto, AdminUserViewModel>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ)); cfg.CreateMap <AdminUserDto, EditAdminUserViewModel>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ)); cfg.CreateMap <EditAdminUserViewModel, AdminUserCmdDto>().ForMember(u => u.Contact, u => u.ResolveUsing(ue => new Contact(mobile: ue.Mobile, email: ue.Email, qq: ue.QQ))); cfg.CreateMap <AdminUserCmdDto, AdminUser>(); cfg.CreateMap <UserViewModel, AdminUserViewModel>(); cfg.CreateMap <User, UserDto>().ConvertUsing(c => { if (c == null) { return(null); } UserDto user = null; switch (c.UserType) { case UserType.管理账户: user = ((AdminUser)c).MapTo <AdminUserDto>(); break; } return(user); }); cfg.CreateMap <UserCmdDto, User>().ConvertUsing(c => { if (c == null) { return(null); } User user = null; switch (c.UserType) { case UserType.管理账户: user = ((AdminUserCmdDto)c).MapTo <AdminUser>(); break; } return(user); }); cfg.CreateMap <UserDto, UserViewModel>().ConvertUsing(c => { if (c == null) { return(null); } UserViewModel user = null; switch (c.UserType) { case UserType.管理账户: user = ((AdminUserDto)c).MapTo <AdminUserViewModel>(); break; } return(user); }); cfg.CreateMap <UserDto, EditAdminUserViewModel>().ConvertUsing(c => { if (c == null) { return(null); } EditAdminUserViewModel user = null; switch (c.UserType) { case UserType.管理账户: user = ((AdminUserDto)c).MapTo <EditAdminUserViewModel>(); break; } return(user); }); cfg.CreateMap <UserViewModel, UserCmdDto>().ConvertUsing(c => { if (c == null) { return(null); } UserCmdDto user = null; switch (c.UserType) { case UserType.管理账户: user = ((AdminUserViewModel)c).MapTo <AdminUserCmdDto>(); break; } return(user); }); cfg.CreateMap <UserFilterViewModel, UserFilterDto>(); cfg.CreateMap <AdminUserFilterViewModel, AdminUserFilterDto>(); cfg.CreateMap <ModifyPasswordViewModel, ModifyPasswordCmdDto>(); cfg.CreateMap <ModifyPasswordCmdDto, ModifyUserPassword>(); #endregion #region Role cfg.CreateMap <RoleEntity, Role>().ForMember(r => r.Parent, r => r.ResolveUsing(re => { return(Role.CreateRole(re.Parent)); })); cfg.CreateMap <Role, RoleEntity>().ForMember(re => re.Parent, r => r.MapFrom(rs => rs.Parent.SysNo)); cfg.CreateMap <Role, RoleDto>(); cfg.CreateMap <RoleDto, Role>(); cfg.CreateMap <RoleCmdDto, Role>(); cfg.CreateMap <RoleViewModel, RoleCmdDto>(); cfg.CreateMap <RoleDto, RoleViewModel>(); cfg.CreateMap <RoleFilterViewModel, RoleFilterDto>(); cfg.CreateMap <ModifyRoleAuthorizeCmdDto, ModifyRoleAuthorize>() .ForMember(c => c.Binds, ce => ce.MapFrom(cs => cs.Binds.Select(cm => new Tuple <Role, Authority>(cm.Item1.MapTo <Role>(), cm.Item2.MapTo <Authority>())))) .ForMember(c => c.UnBinds, ce => ce.MapFrom(cs => cs.UnBinds.Select(cm => new Tuple <Role, Authority>(cm.Item1.MapTo <Role>(), cm.Item2.MapTo <Authority>())))); #endregion #region AuthorityGroup cfg.CreateMap <AuthorityGroup, AuthorityGroupEntity>().ForMember(r => r.Parent, re => re.MapFrom(rs => rs.Parent.SysNo)); cfg.CreateMap <AuthorityGroupEntity, AuthorityGroup>().ForMember(re => re.Parent, r => r.ResolveUsing(re => { return(AuthorityGroup.CreateAuthorityGroup(re.Parent)); })); cfg.CreateMap <AuthorityGroup, AuthorityGroupDto>(); cfg.CreateMap <AuthorityGroupCmdDto, AuthorityGroup>(); cfg.CreateMap <AuthorityGroupDto, AuthorityGroupViewModel>(); cfg.CreateMap <AuthorityGroupDto, EditAuthorityGroupViewModel>(); cfg.CreateMap <EditAuthorityGroupViewModel, AuthorityGroupCmdDto>(); cfg.CreateMap <EditAuthorityGroupViewModel, SaveAuthorityGroupCmdDto>().ForMember(a => a.AuthorityGroup, a => a.MapFrom(c => c)); #endregion #region Authority cfg.CreateMap <Authority, AuthorityEntity>().ForMember(c => c.AuthGroup, re => re.MapFrom(rs => rs.AuthGroup.SysNo)); cfg.CreateMap <AuthorityEntity, Authority>().ForMember(c => c.AuthGroup, re => re.ResolveUsing(rs => { return(AuthorityGroup.CreateAuthorityGroup(rs.AuthGroup)); })); cfg.CreateMap <Authority, AuthorityDto>(); cfg.CreateMap <AuthorityCmdDto, Authority>(); cfg.CreateMap <AuthorityDto, AuthorityViewModel>(); cfg.CreateMap <AuthorityDto, EditAuthorityViewModel>(); cfg.CreateMap <AuthorityViewModel, AuthorityCmdDto>(); cfg.CreateMap <EditAuthorityViewModel, AuthorityCmdDto>(); cfg.CreateMap <AuthorityFilterViewModel, AuthorityFilterDto>(); cfg.CreateMap <AuthorityDto, AuthorizationAuthorityViewModel>(); #endregion #region AuthorityOperationGroup cfg.CreateMap <AuthorityOperationGroup, AuthorityOperationGroupEntity>().ForMember(r => r.Parent, re => re.MapFrom(rs => rs.Parent.SysNo)).ForMember(r => r.Root, re => re.MapFrom(rs => rs.Root.SysNo)); cfg.CreateMap <AuthorityOperationGroupEntity, AuthorityOperationGroup>().ForMember(re => re.Parent, r => r.ResolveUsing(re => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(re.Parent)); })).ForMember(re => re.Root, r => r.ResolveUsing(re => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(re.Root)); })); cfg.CreateMap <AuthorityOperationGroup, AuthorityOperationGroupDto>(); cfg.CreateMap <AuthorityOperationGroupCmdDto, AuthorityOperationGroup>(); cfg.CreateMap <AuthorityOperationGroupDto, AuthorityOperationGroupViewModel>(); cfg.CreateMap <AuthorityOperationGroupDto, EditAuthorityOperationGroupViewModel>(); cfg.CreateMap <EditAuthorityOperationGroupViewModel, AuthorityOperationGroupCmdDto>(); #endregion #region AuthorityOperation cfg.CreateMap <AuthorityOperation, AuthorityOperationEntity>().ForMember(c => c.Group, re => re.MapFrom(rs => rs.Group.SysNo)); cfg.CreateMap <AuthorityOperationEntity, AuthorityOperation>().ForMember(c => c.Group, re => re.ResolveUsing(rs => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(rs.Group)); })); cfg.CreateMap <AuthorityOperation, AuthorityOperationDto>(); cfg.CreateMap <AuthorityOperationCmdDto, AuthorityOperation>(); cfg.CreateMap <AuthorityOperationDto, AuthorityOperationViewModel>(); cfg.CreateMap <AuthorityOperationDto, EditAuthorityOperationViewModel>(); cfg.CreateMap <EditAuthorityOperationViewModel, AuthorityOperationCmdDto>(); cfg.CreateMap <AuthorityOperationFilterViewModel, AuthorityOperationFilterDto>(); #endregion #region AuthorityBinOperation cfg.CreateMap <ModifyAuthorityBindAuthorityOperationCmdDto, ModifyAuthorityAndAuthorityOperationBind>() .ForMember(c => c.Binds, ce => ce.MapFrom(cs => cs.Binds.Select(cm => new Tuple <Authority, AuthorityOperation>(cm.Item1.MapTo <Authority>(), cm.Item2.MapTo <AuthorityOperation>())))) .ForMember(c => c.UnBinds, ce => ce.MapFrom(cs => cs.UnBinds.Select(cm => new Tuple <Authority, AuthorityOperation>(cm.Item1.MapTo <Authority>(), cm.Item2.MapTo <AuthorityOperation>())))); cfg.CreateMap <AuthorityBindOperationFilterViewModel, AuthorityBindOperationFilterDto>(); cfg.CreateMap <AuthorityOperationBindAuthorityFilterViewModel, AuthorityOperationBindAuthorityFilterDto>(); #endregion #region UserAuthorize cfg.CreateMap <UserAuthorizeCmdDto, UserAuthorize>(); cfg.CreateMap <UserAuthorize, UserAuthorizeEntity>().ForMember(c => c.User, ce => ce.MapFrom(cs => cs.User.SysNo)).ForMember(c => c.Authority, ce => ce.MapFrom(cs => cs.Authority.Code)); cfg.CreateMap <UserAuthorizeEntity, UserAuthorize>().ForMember(c => c.User, ce => ce.ResolveUsing(cs => { return(User.CreateUser(cs.User)); })).ForMember(c => c.Authority, ce => ce.ResolveUsing(cs => Authority.CreateAuthority(cs.Authority))); #endregion #region Authentication cfg.CreateMap <AuthenticationCmdDto, Authentication>(); #endregion #endregion #region Task #region JobGroup cfg.CreateMap <JobGroup, JobGroupEntity>().ForMember(r => r.Parent, re => re.MapFrom(rs => rs.Parent.Code)).ForMember(r => r.Root, re => re.MapFrom(rs => rs.Root.Code)); cfg.CreateMap <JobGroupEntity, JobGroup>().ForMember(re => re.Parent, r => r.ResolveUsing(re => { return(JobGroup.CreateJobGroup(re.Parent)); })).ForMember(re => re.Root, r => r.ResolveUsing(re => { return(JobGroup.CreateJobGroup(re.Root)); })); cfg.CreateMap <JobGroup, JobGroupDto>(); cfg.CreateMap <JobGroupCmdDto, JobGroup>(); cfg.CreateMap <JobGroupDto, JobGroupViewModel>(); cfg.CreateMap <JobGroupViewModel, JobGroupCmdDto>(); #endregion #region ServerNode cfg.CreateMap <ServerNode, ServerNodeEntity>(); cfg.CreateMap <ServerNodeEntity, ServerNode>(); cfg.CreateMap <ServerNode, ServerNodeDto>(); cfg.CreateMap <ServerNodeCmdDto, ServerNode>(); cfg.CreateMap <ServerNodeDto, ServerNodeViewModel>(); cfg.CreateMap <ServerNodeViewModel, ServerNodeCmdDto>(); cfg.CreateMap <ServerNodeFilterViewModel, ServerNodeFilterDto>(); //cfg.CreateMap<ServerNode, TaskService>().ForMember(c => c.Remark, c => c.MapFrom(cs => cs.Description)).ForMember(c => c.Thread, c => c.ResolveUsing<ThreadConfig>(cs => //{ // return new ThreadConfig() // { // ThreadCount = cs.ThreadCount, // ThreadPriority = cs.ThreadPriority // }; //})); #endregion #region Job cfg.CreateMap <Job, JobEntity>().ForMember(r => r.Group, re => re.MapFrom(rs => rs.Group.Code)); cfg.CreateMap <JobEntity, Job>().ForMember(r => r.Group, r => r.ResolveUsing(re => { return(JobGroup.CreateJobGroup(re.Group)); })); cfg.CreateMap <Job, JobDto>(); cfg.CreateMap <JobCmdDto, Job>(); cfg.CreateMap <JobDto, JobViewModel>(); cfg.CreateMap <JobViewModel, JobCmdDto>(); cfg.CreateMap <JobFilterViewModel, JobFilterDto>(); //cfg.CreateMap<Job, TaskJob>().ConvertUsing(c => //{ // if (c == null) // { // return null; // } // TaskJob job = new TaskJob() // { // Id = c.Id, // Name = c.Name, // AppType = c.Type, // RunType = c.RunType, // State = c.State, // Group = new TaskJobGroup() // { // Id = c.Group?.Code, // Name = c.Group?.Name // } // }; // switch (c.Type) // { // case JobApplicationType.本地应用: // job.ApplicationJob = new ApplicationJob() // { // ApplicationPath = c.JobPath // }; // break; // case JobApplicationType.自定义任务: // job.CustomerJob = new CustomerJob() // { // JobFilePath = c.JobFileName, // JobTypeFullName = c.JobPath // }; // break; // case JobApplicationType.远程任务: // job.RemoteJob = new RemoteJob() // { // RemoteUrl = c.JobPath // }; // break; // } // return job; //}); //cfg.CreateMap<JobDto, TaskJob>().ConvertUsing(c => //{ // if (c == null) // { // return null; // } // TaskJob job = new TaskJob() // { // Id = c.Id, // Name = c.Name, // AppType = c.Type, // RunType = c.RunType, // State = c.State, // Group = new TaskJobGroup() // { // Id = c.Group?.Code, // Name = c.Group?.Name // } // }; // switch (c.Type) // { // case JobApplicationType.本地应用: // job.ApplicationJob = new ApplicationJob() // { // ApplicationPath = c.JobPath // }; // break; // case JobApplicationType.自定义任务: // job.CustomerJob = new CustomerJob() // { // JobFilePath = c.JobFileName, // JobTypeFullName = c.JobPath // }; // break; // case JobApplicationType.远程任务: // job.RemoteJob = new RemoteJob() // { // RemoteUrl = c.JobPath // }; // break; // } // return job; //}); #endregion #region JobServerHost cfg.CreateMap <JobServerHost, JobServerHostEntity>().ForMember(r => r.Server, re => re.MapFrom(rs => rs.Server.Id)).ForMember(r => r.Job, re => re.MapFrom(rs => rs.Job.Id)); cfg.CreateMap <JobServerHostEntity, JobServerHost>().ForMember(r => r.Server, re => re.ResolveUsing(rs => { return(ServerNode.CreateServerNode(rs.Server)); })).ForMember(r => r.Job, re => re.ResolveUsing(rs => { return(Job.CreateJob(rs.Job)); })); cfg.CreateMap <JobServerHost, JobServerHostDto>(); cfg.CreateMap <JobServerHostCmdDto, JobServerHost>(); cfg.CreateMap <JobServerHostDto, JobServerHostViewModel>(); cfg.CreateMap <JobServerHostViewModel, JobServerHostCmdDto>(); cfg.CreateMap <JobServerHostFilterViewModel, JobServerHostFilterDto>(); #endregion #region Trigger cfg.CreateMap <Trigger, TriggerEntity>().ForMember(c => c.Job, c => c.MapFrom(cs => cs.Job.Id)).ForMember(c => c.ConditionType, c => c.MapFrom(ce => ce.Condition == null ? 0 : (int)ce.Condition.Type)); cfg.CreateMap <Trigger, SimpleTrigger>(); cfg.CreateMap <Trigger, ExpressionTrigger>(); cfg.CreateMap <TriggerEntity, Trigger>().ForMember(c => c.Job, c => c.ResolveUsing(ce => Job.CreateJob(ce.Job))).ForMember(c => c.Condition, c => c.ResolveUsing(ce => TriggerCondition.CreateTriggerCondition((TaskTriggerConditionType)ce.ConditionType, ce.Id))); cfg.CreateMap <TriggerFilterViewModel, TriggerFilterDto>(); cfg.CreateMap <Trigger, TaskTrigger>().ConstructUsing(c => { if (c == null) { return(null); } TaskTrigger taskTrigger = new TaskTrigger() { Id = c.Id, Job = c.Job?.MapTo <TaskJob>(), Name = c.Name, State = c.Status, Type = c.Type, }; switch (c.Type) { case TaskTriggerType.简单: var simpleTaskTrigger = ((SimpleTrigger)c).MapTo <TaskSimpleTrigger>(); taskTrigger.TriggerJsonData = JsonSerialize.ObjectToJson(simpleTaskTrigger); break; case TaskTriggerType.自定义: var expressionTaskTrigger = ((ExpressionTrigger)c).MapTo <TaskExpressionTrigger>(); taskTrigger.TriggerJsonData = JsonSerialize.ObjectToJson(expressionTaskTrigger); break; } return(taskTrigger); }); cfg.CreateMap <TriggerDto, TaskTrigger>().ConstructUsing(c => { if (c == null) { return(null); } TaskTrigger taskTrigger = new TaskTrigger() { Id = c.Id, Job = c.Job?.MapTo <TaskJob>(), Name = c.Name, State = c.Status, Type = c.Type, }; switch (c.Type) { case TaskTriggerType.简单: var simpleTaskTrigger = ((SimpleTriggerDto)c).MapTo <TaskSimpleTrigger>(); taskTrigger.TriggerJsonData = JsonSerialize.ObjectToJson(simpleTaskTrigger); break; case TaskTriggerType.自定义: var expressionTaskTrigger = ((ExpressionTriggerDto)c).MapTo <TaskExpressionTrigger>(); taskTrigger.TriggerJsonData = JsonSerialize.ObjectToJson(expressionTaskTrigger); break; } return(taskTrigger); }); //simple trigger cfg.CreateMap <TriggerSimpleEntity, SimpleTrigger>().ForMember(c => c.Id, ce => ce.MapFrom(cs => cs.TriggerId)); cfg.CreateMap <Trigger, TriggerSimpleEntity>(); cfg.CreateMap <SimpleTrigger, TriggerSimpleEntity>().ForMember(c => c.TriggerId, ce => ce.MapFrom(cs => cs.Id)); cfg.CreateMap <TriggerSimpleEntity, Trigger>().ConvertUsing(c => { return(c.MapTo <SimpleTrigger>()); }); cfg.CreateMap <SimpleTrigger, SimpleTriggerDto>(); cfg.CreateMap <SimpleTriggerCmdDto, SimpleTrigger>(); cfg.CreateMap <SimpleTriggerDto, SimpleTriggerViewModel>(); cfg.CreateMap <SimpleTriggerViewModel, SimpleTriggerCmdDto>(); cfg.CreateMap <TriggerViewModel, SimpleTriggerViewModel>(); cfg.CreateMap <SimpleTrigger, TaskSimpleTrigger>().ForMember(c => c.RepeatInterval, c => c.MapFrom(cs => TimeSpan.FromMilliseconds(cs.RepeatInterval))); cfg.CreateMap <SimpleTriggerDto, TaskSimpleTrigger>().ForMember(c => c.RepeatInterval, c => c.MapFrom(cs => TimeSpan.FromMilliseconds(cs.RepeatInterval))); //expression trigger cfg.CreateMap <ExpressionTrigger, ExpressionTriggerDto>(); cfg.CreateMap <ExpressionTriggerCmdDto, ExpressionTrigger>(); cfg.CreateMap <ExpressionTriggerDto, ExpressionTriggerViewModel>(); cfg.CreateMap <ExpressionTriggerViewModel, ExpressionTriggerCmdDto>(); cfg.CreateMap <TriggerViewModel, ExpressionTriggerViewModel>(); cfg.CreateMap <ExpressionTrigger, TaskExpressionTrigger>(); cfg.CreateMap <ExpressionTriggerDto, TaskExpressionTrigger>(); //expression item cfg.CreateMap <ExpressionItem, TriggerExpressionEntity>().ForMember(c => c.ArrayValue, c => c.MapFrom(cs => string.Join(",", cs.ArrayValue))); cfg.CreateMap <TriggerExpressionEntity, ExpressionItem>().ForMember(c => c.ArrayValue, c => c.MapFrom(cs => cs.ArrayValue.LSplit(","))); cfg.CreateMap <ExpressionItem, ExpressionItemDto>(); cfg.CreateMap <ExpressionItemCmdDto, ExpressionItem>(); cfg.CreateMap <ExpressionItemDto, ExpressionItemViewModel>(); cfg.CreateMap <ExpressionItemViewModel, ExpressionItemCmdDto>(); cfg.CreateMap <ExpressionItem, TaskExpressionItem>(); cfg.CreateMap <ExpressionItemDto, TaskExpressionItem>(); cfg.CreateMap <Trigger, TriggerDto>().ConvertUsing(c => { if (c == null) { return(null); } TriggerDto triggerDto = null; switch (c.Type) { case TaskTriggerType.简单: triggerDto = ((SimpleTrigger)c).MapTo <SimpleTriggerDto>(); break; case TaskTriggerType.自定义: triggerDto = ((ExpressionTrigger)c).MapTo <ExpressionTriggerDto>(); break; } return(triggerDto); }); cfg.CreateMap <TriggerCmdDto, Trigger>().ConvertUsing(t => { if (t == null) { return(null); } Trigger trigger = null; switch (t.Type) { case TaskTriggerType.简单: trigger = ((SimpleTriggerCmdDto)t).MapTo <SimpleTrigger>(); break; case TaskTriggerType.自定义: trigger = ((ExpressionTriggerCmdDto)t).MapTo <ExpressionTrigger>(); break; } return(trigger); }); cfg.CreateMap <TriggerDto, TriggerViewModel>().ConvertUsing(t => { if (t == null) { return(null); } TriggerViewModel trigger = null; switch (t.Type) { case TaskTriggerType.简单: trigger = ((SimpleTriggerDto)t).MapTo <SimpleTriggerViewModel>(); break; case TaskTriggerType.自定义: trigger = ((ExpressionTriggerDto)t).MapTo <ExpressionTriggerViewModel>(); break; } return(trigger); }); cfg.CreateMap <TriggerViewModel, TriggerCmdDto>().ConvertUsing(t => { if (t == null) { return(null); } TriggerCmdDto trigger = null; switch (t.Type) { case TaskTriggerType.简单: trigger = ((SimpleTriggerViewModel)t).MapTo <SimpleTriggerCmdDto>(); break; case TaskTriggerType.自定义: trigger = ((ExpressionTriggerViewModel)t).MapTo <ExpressionTriggerCmdDto>(); break; default: var newTrigger = new SimpleTriggerViewModel() { Id = t.Id, Name = t.Name, Type = TaskTriggerType.简单, StartTime = t.StartTime, Description = t.Description, ApplyTo = t.ApplyTo, Condition = t.Condition, EndTime = t.EndTime, FireTotalCount = t.FireTotalCount, Job = t.Job, MisFireType = t.MisFireType, NextFireTime = t.NextFireTime, PrevFireTime = t.PrevFireTime, Priority = t.Priority, Status = t.Status }; trigger = newTrigger.MapTo <SimpleTriggerCmdDto>(); break; } return(trigger); }); #endregion #region TriggerCondition //年计划 cfg.CreateMap <TriggerAnnualConditionEntity, AnnualConditionDay>(); cfg.CreateMap <AnnualConditionDay, TriggerAnnualConditionEntity>(); cfg.CreateMap <TriggerAnnualCondition, TriggerAnnualConditionDto>(); cfg.CreateMap <TriggerAnnualConditionDto, TriggerAnnualConditionViewModel>(); cfg.CreateMap <TriggerAnnualConditionViewModel, TriggerAnnualConditionCmdDto>(); cfg.CreateMap <TriggerAnnualConditionCmdDto, TriggerAnnualCondition>(); cfg.CreateMap <AnnualConditionDay, AnnualConditionDayDto>(); cfg.CreateMap <AnnualConditionDayDto, AnnualConditionDayViewModel>(); cfg.CreateMap <AnnualConditionDayViewModel, AnnualConditionDayCmdDto>(); cfg.CreateMap <AnnualConditionDayCmdDto, AnnualConditionDay>(); //转化为任务对象 cfg.CreateMap <TriggerAnnualConditionDto, TaskTriggerAnnualCondition>(); cfg.CreateMap <TriggerAnnualCondition, TaskTriggerAnnualCondition>(); cfg.CreateMap <AnnualConditionDayDto, TaskAnnualConditionDay>(); cfg.CreateMap <AnnualConditionDay, TaskAnnualConditionDay>(); //完整日期计划 cfg.CreateMap <TriggerFullDateConditionEntity, FullDateConditionDate>(); cfg.CreateMap <FullDateConditionDate, TriggerFullDateConditionEntity>(); cfg.CreateMap <TriggerFullDateCondition, TriggerFullDateConditionDto>(); cfg.CreateMap <TriggerFullDateConditionDto, TriggerFullDateConditionViewModel>(); cfg.CreateMap <TriggerFullDateConditionViewModel, TriggerFullDateConditionCmdDto>(); cfg.CreateMap <TriggerFullDateConditionCmdDto, TriggerFullDateCondition>(); cfg.CreateMap <FullDateConditionDate, FullDateConditionDateDto>(); cfg.CreateMap <FullDateConditionDateDto, FullDateConditionDateViewModel>(); cfg.CreateMap <FullDateConditionDateViewModel, FullDateConditionDateCmdDto>(); cfg.CreateMap <FullDateConditionDateCmdDto, FullDateConditionDate>(); //转化为任务对象 cfg.CreateMap <TriggerFullDateConditionDto, TaskTriggerFullDateCondition>(); cfg.CreateMap <TriggerFullDateCondition, TaskTriggerFullDateCondition>(); cfg.CreateMap <FullDateConditionDateDto, TaskFullDateConditionDate>(); cfg.CreateMap <FullDateConditionDate, TaskFullDateConditionDate>(); //月份日期 cfg.CreateMap <TriggerMonthlyConditionEntity, MonthConditionDay>(); cfg.CreateMap <MonthConditionDay, TriggerMonthlyConditionEntity>(); cfg.CreateMap <TriggerMonthlyCondition, TriggerMonthlyConditionDto>(); cfg.CreateMap <TriggerMonthlyConditionDto, TriggerMonthlyConditionViewModel>(); cfg.CreateMap <TriggerMonthlyConditionViewModel, TriggerMonthlyConditionCmdDto>(); cfg.CreateMap <TriggerMonthlyConditionCmdDto, TriggerMonthlyCondition>(); cfg.CreateMap <MonthConditionDay, MonthConditionDayDto>(); cfg.CreateMap <MonthConditionDayDto, MonthConditionDayViewModel>(); cfg.CreateMap <MonthConditionDayViewModel, MonthConditionDayCmdDto>(); cfg.CreateMap <MonthConditionDayCmdDto, MonthConditionDay>(); //转化为任务对象 cfg.CreateMap <TriggerMonthlyConditionDto, TaskTriggerMonthlyCondition>(); cfg.CreateMap <TriggerMonthlyCondition, TaskTriggerMonthlyCondition>(); cfg.CreateMap <MonthConditionDayDto, TaskMonthConditionDay>(); cfg.CreateMap <MonthConditionDay, TaskMonthConditionDay>(); //星期日期 cfg.CreateMap <TriggerWeeklyConditionEntity, WeeklyConditionDay>(); cfg.CreateMap <WeeklyConditionDay, TriggerWeeklyConditionEntity>(); cfg.CreateMap <TriggerWeeklyCondition, TriggerWeeklyConditionDto>(); cfg.CreateMap <TriggerWeeklyConditionDto, TriggerWeeklyConditionViewModel>(); cfg.CreateMap <TriggerWeeklyConditionViewModel, TriggerWeeklyConditionCmdDto>(); cfg.CreateMap <TriggerWeeklyConditionCmdDto, TriggerWeeklyCondition>(); cfg.CreateMap <WeeklyConditionDay, WeeklyConditionDayDto>(); cfg.CreateMap <WeeklyConditionDayDto, WeeklyConditionDayViewModel>(); cfg.CreateMap <WeeklyConditionDayViewModel, WeeklyConditionDayCmdDto>(); cfg.CreateMap <WeeklyConditionDayCmdDto, WeeklyConditionDay>(); //转化为任务对象 cfg.CreateMap <TriggerWeeklyConditionDto, TaskTriggerWeeklyCondition>(); cfg.CreateMap <TriggerWeeklyCondition, TaskTriggerWeeklyCondition>(); cfg.CreateMap <WeeklyConditionDayDto, TaskWeeklyConditionDay>(); cfg.CreateMap <WeeklyConditionDay, TaskWeeklyConditionDay>(); //表达式 cfg.CreateMap <TriggerExpressionConditionEntity, ExpressionItem>().ForMember(c => c.ArrayValue, c => c.MapFrom(cs => cs.ArrayValue.LSplit(","))).ForMember(c => c.Option, c => c.MapFrom(cs => cs.ConditionOption)); cfg.CreateMap <ExpressionItem, TriggerExpressionConditionEntity>().ForMember(c => c.ArrayValue, c => c.MapFrom(cs => string.Join(",", cs.ArrayValue))).ForMember(c => c.ConditionOption, c => c.MapFrom(cs => cs.Option)); cfg.CreateMap <TriggerExpressionCondition, TriggerExpressionConditionDto>(); cfg.CreateMap <TriggerExpressionConditionDto, TriggerExpressionConditionViewModel>(); cfg.CreateMap <TriggerExpressionConditionViewModel, TriggerExpressionConditionCmdDto>(); cfg.CreateMap <TriggerExpressionConditionCmdDto, TriggerExpressionCondition>(); //转化为任务对象 cfg.CreateMap <TriggerExpressionConditionDto, TaskTriggerExpressionCondition>(); cfg.CreateMap <TriggerExpressionCondition, TaskTriggerExpressionCondition>(); //时间段 cfg.CreateMap <TriggerDailyConditionEntity, TriggerCondition>(); cfg.CreateMap <TriggerCondition, TriggerDailyConditionEntity>(); cfg.CreateMap <TriggerDailyConditionEntity, TriggerDailyCondition>(); cfg.CreateMap <TriggerDailyCondition, TriggerDailyConditionEntity>(); cfg.CreateMap <TriggerDailyCondition, TriggerDailyConditionDto>(); cfg.CreateMap <TriggerDailyConditionDto, TriggerDailyConditionViewModel>(); cfg.CreateMap <TriggerDailyConditionViewModel, TriggerDailyConditionCmdDto>(); cfg.CreateMap <TriggerDailyConditionCmdDto, TriggerDailyCondition>(); //转化为任务对象 cfg.CreateMap <TriggerDailyConditionDto, TaskTriggerDailyCondition>(); cfg.CreateMap <TriggerDailyCondition, TaskTriggerDailyCondition>(); cfg.CreateMap <TriggerDailyConditionDto, TaskTriggerDailyCondition>(); cfg.CreateMap <TriggerDailyCondition, TaskTriggerDailyCondition>(); cfg.CreateMap <TriggerCondition, TriggerConditionDto>().ConvertUsing(c => { if (c == null) { return(null); } TriggerConditionDto triggerConditionDto = null; switch (c.Type) { case TaskTriggerConditionType.限制: break; case TaskTriggerConditionType.固定日期: triggerConditionDto = ((TriggerFullDateCondition)c).MapTo <TriggerFullDateConditionDto>(); break; case TaskTriggerConditionType.星期配置: triggerConditionDto = ((TriggerWeeklyCondition)c).MapTo <TriggerWeeklyConditionDto>(); break; case TaskTriggerConditionType.每天时间段: triggerConditionDto = ((TriggerDailyCondition)c).MapTo <TriggerDailyConditionDto>(); break; case TaskTriggerConditionType.每年日期: triggerConditionDto = ((TriggerAnnualCondition)c).MapTo <TriggerAnnualConditionDto>(); break; case TaskTriggerConditionType.每月日期: triggerConditionDto = ((TriggerMonthlyCondition)c).MapTo <TriggerMonthlyConditionDto>(); break; case TaskTriggerConditionType.自定义: triggerConditionDto = ((TriggerExpressionCondition)c).MapTo <TriggerExpressionConditionDto>(); break; } return(triggerConditionDto); }); cfg.CreateMap <TriggerConditionDto, TriggerConditionViewModel>().ConvertUsing(c => { if (c == null) { return(null); } TriggerConditionViewModel triggerConditionViewModel = null; switch (c.Type) { case TaskTriggerConditionType.限制: break; case TaskTriggerConditionType.固定日期: triggerConditionViewModel = ((TriggerFullDateConditionDto)c).MapTo <TriggerFullDateConditionViewModel>(); break; case TaskTriggerConditionType.星期配置: triggerConditionViewModel = ((TriggerWeeklyConditionDto)c).MapTo <TriggerWeeklyConditionViewModel>(); break; case TaskTriggerConditionType.每天时间段: triggerConditionViewModel = ((TriggerDailyConditionDto)c).MapTo <TriggerDailyConditionViewModel>(); break; case TaskTriggerConditionType.每年日期: triggerConditionViewModel = ((TriggerAnnualConditionDto)c).MapTo <TriggerAnnualConditionViewModel>(); break; case TaskTriggerConditionType.每月日期: triggerConditionViewModel = ((TriggerMonthlyConditionDto)c).MapTo <TriggerMonthlyConditionViewModel>(); break; case TaskTriggerConditionType.自定义: triggerConditionViewModel = ((TriggerExpressionConditionDto)c).MapTo <TriggerExpressionConditionViewModel>(); break; } return(triggerConditionViewModel); }); cfg.CreateMap <TriggerConditionViewModel, TriggerConditionCmdDto>().ConvertUsing(c => { if (c == null) { return(null); } TriggerConditionCmdDto triggerConditionCmdDto = null; switch (c.Type) { case TaskTriggerConditionType.限制: break; case TaskTriggerConditionType.固定日期: triggerConditionCmdDto = ((TriggerFullDateConditionViewModel)c).MapTo <TriggerFullDateConditionCmdDto>(); break; case TaskTriggerConditionType.星期配置: triggerConditionCmdDto = ((TriggerWeeklyConditionViewModel)c).MapTo <TriggerWeeklyConditionCmdDto>(); break; case TaskTriggerConditionType.每天时间段: triggerConditionCmdDto = ((TriggerDailyConditionViewModel)c).MapTo <TriggerDailyConditionCmdDto>(); break; case TaskTriggerConditionType.每年日期: triggerConditionCmdDto = ((TriggerAnnualConditionViewModel)c).MapTo <TriggerAnnualConditionCmdDto>(); break; case TaskTriggerConditionType.每月日期: triggerConditionCmdDto = ((TriggerMonthlyConditionViewModel)c).MapTo <TriggerMonthlyConditionCmdDto>(); break; case TaskTriggerConditionType.自定义: triggerConditionCmdDto = ((TriggerExpressionConditionViewModel)c).MapTo <TriggerExpressionConditionCmdDto>(); break; } return(triggerConditionCmdDto); }); cfg.CreateMap <TriggerConditionCmdDto, TriggerCondition>().ConvertUsing(c => { if (c == null) { return(null); } TriggerCondition triggerCondition = null; switch (c.Type) { case TaskTriggerConditionType.限制: break; case TaskTriggerConditionType.固定日期: triggerCondition = ((TriggerFullDateConditionCmdDto)c).MapTo <TriggerFullDateCondition>(); break; case TaskTriggerConditionType.星期配置: triggerCondition = ((TriggerWeeklyConditionCmdDto)c).MapTo <TriggerWeeklyCondition>(); break; case TaskTriggerConditionType.每天时间段: triggerCondition = ((TriggerDailyConditionCmdDto)c).MapTo <TriggerDailyCondition>(); break; case TaskTriggerConditionType.每年日期: triggerCondition = ((TriggerAnnualConditionCmdDto)c).MapTo <TriggerAnnualCondition>(); break; case TaskTriggerConditionType.每月日期: triggerCondition = ((TriggerMonthlyConditionCmdDto)c).MapTo <TriggerMonthlyCondition>(); break; case TaskTriggerConditionType.自定义: triggerCondition = ((TriggerExpressionConditionCmdDto)c).MapTo <TriggerExpressionCondition>(); break; } return(triggerCondition); }); cfg.CreateMap <TriggerConditionDto, TaskTriggerCondition>().ConvertUsing(c => { if (c == null) { return(null); } TaskTriggerCondition taskCondition = null; switch (c.Type) { case TaskTriggerConditionType.限制: break; case TaskTriggerConditionType.固定日期: taskCondition = ((TriggerFullDateConditionDto)c).MapTo <TaskTriggerFullDateCondition>(); break; case TaskTriggerConditionType.星期配置: taskCondition = ((TriggerWeeklyConditionDto)c).MapTo <TaskTriggerWeeklyCondition>(); break; case TaskTriggerConditionType.每天时间段: taskCondition = ((TriggerDailyConditionDto)c).MapTo <TaskTriggerDailyCondition>(); break; case TaskTriggerConditionType.每年日期: taskCondition = ((TriggerAnnualConditionDto)c).MapTo <TaskTriggerAnnualCondition>(); break; case TaskTriggerConditionType.每月日期: taskCondition = ((TriggerMonthlyConditionDto)c).MapTo <TaskTriggerMonthlyCondition>(); break; case TaskTriggerConditionType.自定义: taskCondition = ((TriggerExpressionConditionDto)c).MapTo <TaskTriggerExpressionCondition>(); break; } return(taskCondition); }); cfg.CreateMap <TriggerCondition, TaskTriggerCondition>().ConvertUsing(c => { if (c == null) { return(null); } TaskTriggerCondition taskCondition = null; switch (c.Type) { case TaskTriggerConditionType.限制: break; case TaskTriggerConditionType.固定日期: taskCondition = ((TriggerFullDateCondition)c).MapTo <TaskTriggerFullDateCondition>(); break; case TaskTriggerConditionType.星期配置: taskCondition = ((TriggerWeeklyCondition)c).MapTo <TaskTriggerWeeklyCondition>(); break; case TaskTriggerConditionType.每天时间段: taskCondition = ((TriggerDailyCondition)c).MapTo <TaskTriggerDailyCondition>(); break; case TaskTriggerConditionType.每年日期: taskCondition = ((TriggerAnnualCondition)c).MapTo <TaskTriggerAnnualCondition>(); break; case TaskTriggerConditionType.每月日期: taskCondition = ((TriggerMonthlyCondition)c).MapTo <TaskTriggerMonthlyCondition>(); break; case TaskTriggerConditionType.自定义: taskCondition = ((TriggerExpressionCondition)c).MapTo <TaskTriggerExpressionCondition>(); break; } return(taskCondition); }); #endregion #region TriggerServer cfg.CreateMap <TriggerServer, TriggerServerEntity>().ForMember(c => c.Trigger, c => c.MapFrom(cs => cs.Trigger.Id)).ForMember(c => c.Server, c => c.MapFrom(cs => cs.Server.Id)); cfg.CreateMap <TriggerServerEntity, TriggerServer>().ForMember(c => c.Trigger, c => c.ResolveUsing(cs => Trigger.CreateTrigger(cs.Trigger))).ForMember(c => c.Server, c => c.ResolveUsing(cs => ServerNode.CreateServerNode(cs.Server))); cfg.CreateMap <TriggerServer, TriggerServerDto>(); cfg.CreateMap <TriggerServerCmdDto, TriggerServer>(); cfg.CreateMap <TriggerServerDto, TriggerServerViewModel>(); cfg.CreateMap <TriggerServerViewModel, TriggerServerCmdDto>(); cfg.CreateMap <TriggerServerFilterViewModel, TriggerServerFilterDto>(); #endregion #region ExecuteLog cfg.CreateMap <ExecuteLog, ExecuteLogEntity>().ForMember(c => c.Server, ce => ce.MapFrom(cs => cs.Server.Id)).ForMember(c => c.Trigger, ce => ce.MapFrom(cs => cs.Trigger.Id)).ForMember(c => c.Job, ce => ce.MapFrom(cs => cs.Job.Id)); cfg.CreateMap <ExecuteLogEntity, ExecuteLog>().ForMember(c => c.Server, ce => ce.ResolveUsing(cs => { return(ServerNode.CreateServerNode(cs.Server)); })).ForMember(c => c.Job, ce => ce.ResolveUsing(cs => { return(Job.CreateJob(cs.Job)); })).ForMember(c => c.Trigger, ce => ce.ResolveUsing(cs => { return(Trigger.CreateTrigger(cs.Trigger)); })); cfg.CreateMap <ExecuteLog, ExecuteLogDto>(); cfg.CreateMap <ExecuteLogCmdDto, ExecuteLog>(); cfg.CreateMap <ExecuteLogDto, ExecuteLogViewModel>(); cfg.CreateMap <ExecuteLogViewModel, ExecuteLogCmdDto>(); cfg.CreateMap <ExecuteLogFilterViewModel, ExecuteLogFilterDto>(); //任务对象转换 cfg.CreateMap <TaskJobExecuteLog, ExecuteLogCmdDto>() .ForMember(c => c.Job, ce => ce.ResolveUsing(cs => { return(new JobCmdDto() { Id = cs.Job?.Id }); })) .ForMember(c => c.Trigger, ce => ce.ResolveUsing(cs => { return(new TriggerCmdDto() { Id = cs.Trigger?.Id }); })); #endregion #region ErrorLog cfg.CreateMap <ErrorLog, ErrorLogEntity>().ForMember(c => c.Server, ce => ce.MapFrom(cs => cs.Server.Id)).ForMember(c => c.Trigger, ce => ce.MapFrom(cs => cs.Trigger.Id)).ForMember(c => c.Job, ce => ce.MapFrom(cs => cs.Job.Id));; cfg.CreateMap <ErrorLogEntity, ErrorLog>().ForMember(c => c.Server, ce => ce.ResolveUsing(cs => { return(ServerNode.CreateServerNode(cs.Server)); })).ForMember(c => c.Job, ce => ce.ResolveUsing(cs => { return(Job.CreateJob(cs.Job)); })).ForMember(c => c.Trigger, ce => ce.ResolveUsing(cs => { return(Trigger.CreateTrigger(cs.Trigger)); })); cfg.CreateMap <ErrorLog, ErrorLogDto>(); cfg.CreateMap <ErrorLogCmdDto, ErrorLog>(); cfg.CreateMap <ErrorLogDto, ErrorLogViewModel>(); cfg.CreateMap <ErrorLogViewModel, ErrorLogCmdDto>(); cfg.CreateMap <ErrorLogFilterViewModel, ErrorLogFilterDto>(); #endregion #region JobFile cfg.CreateMap <JobFile, JobFileEntity>(); cfg.CreateMap <JobFileEntity, JobFile>(); cfg.CreateMap <JobFile, JobFileDto>(); cfg.CreateMap <JobFileCmdDto, JobFile>(); cfg.CreateMap <JobFileDto, JobFileViewModel>(); cfg.CreateMap <JobFileViewModel, JobFileCmdDto>(); #endregion #endregion AutoMapper.Mapper.Initialize(cfg); }
public AddAuthorityGroupResponse AddAuthorityGroup(AddAuthorityGroupRequest request) { // create new group var authorityGroup = new AuthorityGroup(); // set properties from request var assembler = new AuthorityGroupAssembler(); assembler.UpdateAuthorityGroup(authorityGroup, request.AuthorityGroupDetail, PersistenceContext); // save PersistenceContext.Lock(authorityGroup, DirtyState.New); PersistenceContext.SynchState(); return new AddAuthorityGroupResponse(assembler.CreateAuthorityGroupSummary(authorityGroup)); }
public AuthorityGroup Update(AuthorityGroup AuthorityGroup) { return(this.AuthorityGroupRepository.Update(AuthorityGroup)); }
public IActionResult Insert([FromBody] AuthorityGroup AuthorityGroup) { return(Ok(AuthorityGroupService.Insert(AuthorityGroup))); }
public IActionResult Update([FromBody] AuthorityGroup AuthorityGroup) { return(Ok(AuthorityGroupService.Update(AuthorityGroup))); }
public int GetUserCountForGroup(AuthorityGroup group) { var q = new HqlQuery("select count(elements(g.Users)) from AuthorityGroup g"); q.Conditions.Add(new HqlCondition("g = ?", group)); return (int)ExecuteHqlUnique<long>(q); }
public void Test_CreateNewUser_WithExplicitPasswordAndGroups() { DateTime now = DateTime.Now; DateTime tomorrow = now + TimeSpan.FromDays(1); UserInfo userInfo = new UserInfo( "foo", "Mr. Foo", "*****@*****.**", null, null); AuthorityGroup group1 = new AuthorityGroup(); AuthorityGroup group2 = new AuthorityGroup(); HashedSet<AuthorityGroup> groups = new HashedSet<AuthorityGroup>(); groups.Add(group1); groups.Add(group2); User user = User.CreateNewUser(userInfo, Password.CreatePassword(DefaultPassword, tomorrow), groups); Assert.AreEqual(userInfo.UserName, user.UserName); Assert.AreEqual(userInfo.DisplayName, user.DisplayName); Assert.AreEqual(true, user.Enabled); // enabled by default Assert.IsTrue(RoughlyEqual(now, user.CreationTime)); Assert.IsNull(user.LastLoginTime); // never logged in // password Assert.IsNotNull(user.Password); Assert.IsTrue(user.Password.Verify(DefaultPassword)); // initial password should work // password expiry time Assert.IsTrue(RoughlyEqual(tomorrow, user.Password.ExpiryTime)); // groups Assert.AreEqual(2, user.AuthorityGroups.Count); Assert.IsTrue(user.AuthorityGroups.ContainsAll(groups)); }
public AddAuthorityGroupResponse AddAuthorityGroup(AddAuthorityGroupRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.AuthorityGroupDetail, "AuthorityGroupDetail"); if (request.AuthorityGroupDetail.BuiltIn) throw new RequestValidationException(SR.MessageCannotManageBuiltInAuthorityGroups); // create new group var authorityGroup = new AuthorityGroup(); // set properties from request var assembler = new AuthorityGroupAssembler(); assembler.UpdateAuthorityGroup(authorityGroup, request.AuthorityGroupDetail, PersistenceContext); // save PersistenceContext.Lock(authorityGroup, DirtyState.New); PersistenceContext.SynchState(); return new AddAuthorityGroupResponse(assembler.CreateAuthorityGroupSummary(authorityGroup)); }
public AuthorityGroup Insert(AuthorityGroup AuthorityGroup) { return(this.AuthorityGroupRepository.Insert(AuthorityGroup)); }
/// <summary> /// /// <summary> /// 注册对象映射 /// </summary> /// </summary> public void Register() { var cfg = new MapperConfigurationExpression(); cfg.ShouldMapProperty = p => p.GetMethod.IsPublic || p.GetMethod.IsAssembly || p.GetMethod.IsPrivate || p.GetMethod.IsFamilyAndAssembly || p.GetMethod.IsFamily || p.GetMethod.IsFamilyOrAssembly; #region Sys #region User cfg.CreateMap <UserEntity, User>().ForMember(u => u.Contact, u => u.ResolveUsing(ue => new Contact(mobile: ue.Mobile, email: ue.Email, qq: ue.QQ))); cfg.CreateMap <User, UserEntity>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ)); cfg.CreateMap <User, AdminUser>(); //admin user cfg.CreateMap <AdminUser, AdminUserDto>(); cfg.CreateMap <AdminUserDto, AdminUserViewModel>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ)); cfg.CreateMap <AdminUserViewModel, AdminUserCmdDto>().ForMember(u => u.Contact, u => u.ResolveUsing(ue => new Contact(mobile: ue.Mobile, email: ue.Email, qq: ue.QQ))); cfg.CreateMap <AdminUserCmdDto, AdminUser>(); cfg.CreateMap <UserViewModel, AdminUserViewModel>(); cfg.CreateMap <User, UserDto>().ConvertUsing(c => { if (c == null) { return(null); } UserDto user = null; switch (c.UserType) { case UserType.管理账户: user = ((AdminUser)c).MapTo <AdminUserDto>(); break; } return(user); }); cfg.CreateMap <UserCmdDto, User>().ConvertUsing(c => { if (c == null) { return(null); } User user = null; switch (c.UserType) { case UserType.管理账户: user = ((AdminUserCmdDto)c).MapTo <AdminUser>(); break; } return(user); }); cfg.CreateMap <UserDto, UserViewModel>().ConvertUsing(c => { if (c == null) { return(null); } UserViewModel user = null; switch (c.UserType) { case UserType.管理账户: user = ((AdminUserDto)c).MapTo <AdminUserViewModel>(); break; } return(user); }); cfg.CreateMap <UserViewModel, UserCmdDto>().ConvertUsing(c => { if (c == null) { return(null); } UserCmdDto user = null; switch (c.UserType) { case UserType.管理账户: user = ((AdminUserViewModel)c).MapTo <AdminUserCmdDto>(); break; } return(user); }); //cfg.CreateMap<User, UserDto>(); //cfg.CreateMap<UserEntity, AdminUser>().ForMember(u => u.Contact, u => u.ResolveUsing(ue => new Contact(mobile: ue.Mobile, email: ue.Email, qq: ue.QQ))); //cfg.CreateMap<AdminUser, UserEntity>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ)); ; //cfg.CreateMap<AdminUser, UserDto>(); //cfg.CreateMap<AdminUser, AdminUserDto>().ForMember(a => a.User, a => a.MapFrom(c => c)); //cfg.CreateMap<UserDto, AdminUserViewModel>().ForMember(u => u.Email, u => u.ResolveUsing(ue => ue.Contact.Email)).ForMember(u => u.Mobile, u => u.ResolveUsing(ue => ue.Contact.Mobile)).ForMember(u => u.QQ, u => u.ResolveUsing(ue => ue.Contact.QQ)); //cfg.CreateMap<AdminUserDto, AdminUserViewModel>().ConvertUsing(r => //{ // var viewModel = r.User.MapTo<AdminUserViewModel>(); // viewModel.Roles = (r.Roles ?? new List<RoleDto>(0)).Select(c => c.MapTo<RoleViewModel>()).ToList(); // return viewModel; //}); //cfg.CreateMap<ModifyPasswordViewModel, ModifyPasswordCmdDto>(); //cfg.CreateMap<AdminUserViewModel, UserCmdDto>().ForMember(u => u.Contact, u => u.ResolveUsing(ue => new Contact(mobile: ue.Mobile, email: ue.Email, qq: ue.QQ))); //cfg.CreateMap<UserCmdDto, AdminUser>(); cfg.CreateMap <UserFilterViewModel, UserFilterDto>(); cfg.CreateMap <AdminUserFilterViewModel, AdminUserFilterDto>(); cfg.CreateMap <ModifyPasswordViewModel, ModifyPasswordCmdDto>(); cfg.CreateMap <ModifyPasswordCmdDto, ModifyUserPassword>(); #endregion #region Role cfg.CreateMap <RoleEntity, Role>().ForMember(r => r.Parent, r => r.ResolveUsing(re => { return(Role.CreateRole(re.Parent)); })); cfg.CreateMap <Role, RoleEntity>().ForMember(re => re.Parent, r => r.MapFrom(rs => rs.Parent.SysNo)); cfg.CreateMap <Role, RoleDto>(); cfg.CreateMap <RoleDto, Role>(); cfg.CreateMap <RoleCmdDto, Role>(); cfg.CreateMap <RoleViewModel, RoleCmdDto>(); cfg.CreateMap <RoleDto, RoleViewModel>(); cfg.CreateMap <RoleFilterViewModel, RoleFilterDto>(); cfg.CreateMap <ModifyRoleAuthorizeCmdDto, ModifyRoleAuthorize>() .ForMember(c => c.Binds, ce => ce.MapFrom(cs => cs.Binds.Select(cm => new Tuple <Role, Authority>(cm.Item1.MapTo <Role>(), cm.Item2.MapTo <Authority>())))) .ForMember(c => c.UnBinds, ce => ce.MapFrom(cs => cs.UnBinds.Select(cm => new Tuple <Role, Authority>(cm.Item1.MapTo <Role>(), cm.Item2.MapTo <Authority>())))); #endregion #region AuthorityGroup cfg.CreateMap <AuthorityGroup, AuthorityGroupEntity>().ForMember(r => r.Parent, re => re.MapFrom(rs => rs.Parent.SysNo)); cfg.CreateMap <AuthorityGroupEntity, AuthorityGroup>().ForMember(re => re.Parent, r => r.ResolveUsing(re => { return(AuthorityGroup.CreateAuthorityGroup(re.Parent)); })); cfg.CreateMap <AuthorityGroup, AuthorityGroupDto>(); cfg.CreateMap <AuthorityGroupCmdDto, AuthorityGroup>(); cfg.CreateMap <AuthorityGroupDto, AuthorityGroupViewModel>(); cfg.CreateMap <AuthorityGroupViewModel, AuthorityGroupCmdDto>(); cfg.CreateMap <AuthorityGroupViewModel, SaveAuthorityGroupCmdDto>().ForMember(a => a.AuthorityGroup, a => a.MapFrom(c => c)); #endregion #region Authority cfg.CreateMap <Authority, AuthorityEntity>().ForMember(c => c.AuthGroup, re => re.MapFrom(rs => rs.AuthGroup.SysNo)); cfg.CreateMap <AuthorityEntity, Authority>().ForMember(c => c.AuthGroup, re => re.ResolveUsing(rs => { return(AuthorityGroup.CreateAuthorityGroup(rs.AuthGroup)); })); cfg.CreateMap <Authority, AuthorityDto>(); cfg.CreateMap <AuthorityCmdDto, Authority>(); cfg.CreateMap <AuthorityDto, AuthorityViewModel>(); cfg.CreateMap <AuthorityViewModel, AuthorityCmdDto>(); cfg.CreateMap <AuthorityFilterViewModel, AuthorityFilterDto>(); cfg.CreateMap <AuthorityDto, AuthorizationAuthorityViewModel>(); #endregion #region AuthorityOperationGroup cfg.CreateMap <AuthorityOperationGroup, AuthorityOperationGroupEntity>().ForMember(r => r.Parent, re => re.MapFrom(rs => rs.Parent.SysNo)).ForMember(r => r.Root, re => re.MapFrom(rs => rs.Root.SysNo)); cfg.CreateMap <AuthorityOperationGroupEntity, AuthorityOperationGroup>().ForMember(re => re.Parent, r => r.ResolveUsing(re => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(re.Parent)); })).ForMember(re => re.Root, r => r.ResolveUsing(re => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(re.Root)); })); cfg.CreateMap <AuthorityOperationGroup, AuthorityOperationGroupDto>(); cfg.CreateMap <AuthorityOperationGroupCmdDto, AuthorityOperationGroup>(); cfg.CreateMap <AuthorityOperationGroupDto, AuthorityOperationGroupViewModel>(); cfg.CreateMap <AuthorityOperationGroupViewModel, AuthorityOperationGroupCmdDto>(); #endregion #region AuthorityOperation cfg.CreateMap <AuthorityOperation, AuthorityOperationEntity>().ForMember(c => c.Group, re => re.MapFrom(rs => rs.Group.SysNo)); cfg.CreateMap <AuthorityOperationEntity, AuthorityOperation>().ForMember(c => c.Group, re => re.ResolveUsing(rs => { return(AuthorityOperationGroup.CreateAuthorityOperationGroup(rs.Group)); })); cfg.CreateMap <AuthorityOperation, AuthorityOperationDto>(); cfg.CreateMap <AuthorityOperationCmdDto, AuthorityOperation>(); cfg.CreateMap <AuthorityOperationDto, AuthorityOperationViewModel>(); cfg.CreateMap <AuthorityOperationViewModel, AuthorityOperationCmdDto>(); cfg.CreateMap <AuthorityOperationFilterViewModel, AuthorityOperationFilterDto>(); #endregion #region AuthorityBinOperation cfg.CreateMap <ModifyAuthorityBindAuthorityOperationCmdDto, ModifyAuthorityAndAuthorityOperationBind>() .ForMember(c => c.Binds, ce => ce.MapFrom(cs => cs.Binds.Select(cm => new Tuple <Authority, AuthorityOperation>(cm.Item1.MapTo <Authority>(), cm.Item2.MapTo <AuthorityOperation>())))) .ForMember(c => c.UnBinds, ce => ce.MapFrom(cs => cs.UnBinds.Select(cm => new Tuple <Authority, AuthorityOperation>(cm.Item1.MapTo <Authority>(), cm.Item2.MapTo <AuthorityOperation>())))); cfg.CreateMap <AuthorityBindOperationFilterViewModel, AuthorityBindOperationFilterDto>(); cfg.CreateMap <AuthorityOperationBindAuthorityFilterViewModel, AuthorityOperationBindAuthorityFilterDto>(); #endregion #region UserAuthorize cfg.CreateMap <UserAuthorizeCmdDto, UserAuthorize>(); cfg.CreateMap <UserAuthorize, UserAuthorizeEntity>().ForMember(c => c.User, ce => ce.MapFrom(cs => cs.User.SysNo)).ForMember(c => c.Authority, ce => ce.MapFrom(cs => cs.Authority.Code)); cfg.CreateMap <UserAuthorizeEntity, UserAuthorize>().ForMember(c => c.User, ce => ce.ResolveUsing(cs => { return(User.CreateUser(cs.User)); })).ForMember(c => c.Authority, ce => ce.ResolveUsing(cs => Authority.CreateAuthority(cs.Authority))); #endregion #region Authentication cfg.CreateMap <AuthenticationCmdDto, Authentication>(); #endregion #endregion AutoMapper.Mapper.Initialize(cfg); }