/// <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); }
/// <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); }