public SeparateConfiguration() { var expr = new MapperConfigurationExpression(); expr.CreateMap<Source, Dest>(); var configuration = new MapperConfiguration(expr); Configuration = configuration; }
public static void RegisterMappings(params Assembly[] assemblies) { if (initialized) { return; } initialized = true; var types = assemblies.SelectMany(a => a.GetExportedTypes()).ToList(); var config = new MapperConfigurationExpression(); config.CreateProfile( "ReflectionProfile", configuration => { // IMapFrom<> foreach (var map in GetFromMaps(types)) { configuration.CreateMap(map.Source, map.Destination); } // IMapTo<> foreach (var map in GetToMaps(types)) { configuration.CreateMap(map.Source, map.Destination); } // IHaveCustomMappings foreach (var map in GetCustomMappings(types)) { map.CreateMappings(configuration); } }); MapperInstance = new Mapper(new MapperConfiguration(config)); }
public static void ConfigureSso(this IServiceCollection services, IConfiguration configuration) { var database = configuration.GetValue <DatabaseType>("ApplicationSettings:DatabaseType"); var connString = configuration.GetConnectionString("SSOConnection"); services .ConfigureUserIdentity <AspNetUser>().AddDatabase(database, connString) .ConfigureIdentityServer() .AddSigninCredentialFromConfig(configuration.GetSection("CertificateOptions")) .AddOAuth2Database(database, connString); var configurationExpression = new MapperConfigurationExpression(); SsoMapperConfig.RegisterMappings().ForEach(p => configurationExpression.AddProfile(p)); configurationExpression.AddProfile(new CustomMappingProfile()); var automapperConfig = new MapperConfiguration(configurationExpression); services.TryAddSingleton(automapperConfig.CreateMapper()); // Adding MediatR for Domain Events and Notifications services.AddMediatR(typeof(Startup)); }
private static void InitOrderMapping(ref MapperConfigurationExpression config) { config.CreateMap <Order, OrderDTO>() .ForMember(d => d.Status, opt => opt.MapFrom(s => s.Status.ToString())); config.CreateMap <OrderDTO, Order>() .ForMember(d => d.Status, opt => opt.MapFrom(x => Enum.Parse(typeof(OrderStatus), x.Status, true))) .ForMember(d => d.BillingAddressId, opt => opt.Ignore()); config.CreateMap <ArticleItem, Article>() .ForMember(d => d.OrderId, opt => opt.Ignore()); config.CreateMap <PaymentItem, Payment>() .ForMember(d => d.OrderId, opt => opt.Ignore()); config.CreateMap <BillingAddressItem, BillingAddress>() .ForMember(d => d.OrderId, opt => opt.Ignore()); config.CreateMap <Article, ArticleItem>(); config.CreateMap <BillingAddress, BillingAddressItem>(); config.CreateMap <Payment, PaymentItem>(); }
private void RegisterAssemblyBootstrappers() { var mce = new MapperConfigurationExpression(); mce.ConstructServicesUsing(Container.GetInstance); var bootstrappers = GetBootstrappers().ToList(); Log.Debug("Registering common bootstrappers"); var assembliesToRegister = bootstrappers .Where(b => b.HasDomainComponents) .Select(GetAssemblyFromBootstrapper) .ToList(); var componentsRegistrars = bootstrappers .Select(b => b.DomainComponentDependencyRegistrar) .Where(r => r != null) .ToList(); foreach (var registrar in componentsRegistrars) { registrar.RegisterCommonDependencies(Container, assembliesToRegister); } Log.Debug("Registering individual bootstrappers"); foreach (var bootstrapper in GetBootstrappers()) { bootstrapper.RegisterDependencies(Container, TestRunFixtureBase.Configuration); bootstrapper.RegisterMappingProfiles(mce); } var mc = new MapperConfiguration(mce); mc.AssertConfigurationIsValid(); Container.RegisterSingleton <IMapper>(() => new Mapper(mc, Container.GetInstance)); }
public static void LoadAllMappingProfiles(string executingAssemblyLocation, string targetNamespace = "Acme.WebCore.MappingProfiles", string assemblyPrefix = "Acme", string[] additionalProfiles = null) { // Recurse all dependent assemblies beginning with the parameter location and force them to load. var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies().Select(x => x.FullName).ToList(); LoadDependencies(loadedAssemblies, Assembly.GetCallingAssembly().Location); try { // Discover all classes of type AutoMapper.Profile present in the loaded assemblies. var profileType = typeof(Profile); var profiles = AppDomain.CurrentDomain.GetAssemblies() .Where(x => x.FullName.StartsWith(assemblyPrefix)) .SelectMany(a => a.GetTypes() .Where(t => t.FullName.StartsWith(assemblyPrefix) && profileType.IsAssignableFrom(t) && t.GetConstructor(Type.EmptyTypes) != null && (t.Namespace.Contains(targetNamespace) || additionalProfiles.Any(s => s == t.FullName))) .Select(Activator.CreateInstance) .Cast <Profile>()); // Initialize AutoMapper with all discovered profiles. var cfg = new MapperConfigurationExpression(); foreach (var profile in profiles) { cfg.AddProfile(profile); } Mapper.Initialize(cfg); #if DEBUG Mapper.AssertConfigurationIsValid(); #endif } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } }
public static void Configure(MapperConfigurationExpression cfg) { if (alreadyConfigured) { return; } lock (lockObj) { if (alreadyConfigured) { return; } alreadyConfigured = true; cfg.CreateMap <Guid, string>().ConvertUsing <GuidToStringConverter>(); cfg.CreateMap <DateTimeOffset, DateTime>().ConvertUsing <DateTimeTypeConverter>(); cfg.AddProfile(new EntityRelationProfile()); cfg.AddProfile(new EntityProfile()); cfg.AddProfile(new RecordPermissionsProfile()); cfg.AddProfile(new FieldPermissionsProfile()); cfg.AddProfile(new FieldProfile()); cfg.AddProfile(new RecordsListProfile()); cfg.AddProfile(new RecordViewProfile()); cfg.AddProfile(new RecordTreeProfile()); cfg.AddProfile(new EntityRelationOptionsProfile()); cfg.AddProfile(new JobProfile()); cfg.AddProfile(new UserFileProfile()); //Mapper.AddProfile(new RecordViewFieldProfile(service)); cfg.CreateMap <EntityRecord, ErpUser>().ConvertUsing(new ErpUserConverter()); cfg.CreateMap <ErpUser, EntityRecord>().ConvertUsing(new ErpUserConverterOposite()); cfg.CreateMap <EntityRecord, ErpRole>().ConvertUsing(new ErpRoleConverter()); } }
public void Init() { // Generating fake data _vehiclesInfoResponseEn = GetVehiclesInfoResponse("en"); _vehiclesInfoResponseRu = GetVehiclesInfoResponse("ru", _vehiclesInfoResponseEn); _vehiclesInfoResponseDe = GetVehiclesInfoResponse("de", _vehiclesInfoResponseEn); // Real mapper instance var configurationExp = new MapperConfigurationExpression(); configurationExp.AddProfile <VehiclePriceProfile>(); configurationExp.AddProfile <VehicleDictionaryProfile>(); var mapperConfiguration = new MapperConfiguration(configurationExp); IMapper mapper = new Mapper(mapperConfiguration); // Wargaming client mock _wargamingDictionariesApiClientMock = new Mock <IWargamingDictionariesApiClient>(); _wargamingDictionariesApiClientMock.Setup(w => w.GetVehicles(It.IsAny <RealmType>(), RequestLanguage.En)) .ReturnsAsync(_vehiclesInfoResponseEn); _wargamingDictionariesApiClientMock.Setup(w => w.GetVehicles(It.IsAny <RealmType>(), RequestLanguage.Ru)) .ReturnsAsync(_vehiclesInfoResponseRu); _wargamingDictionariesApiClientMock.Setup(w => w.GetVehicles(It.IsAny <RealmType>(), RequestLanguage.De)) .ReturnsAsync(_vehiclesInfoResponseDe); // MongoDb data accessor mock _dataAccessorMock = new Mock <IDictionariesDataAccessor>(); _vehiclesDictionariesUpdater = new VehiclesDictionaryUpdater( _wargamingDictionariesApiClientMock.Object, _dataAccessorMock.Object, mapper); }
public static void Configure(MapperConfigurationExpression cfg) { if (alreadyConfigured) { return; } lock (lockObj) { if (alreadyConfigured) { return; } alreadyConfigured = true; cfg.CreateMap <Guid, string>().ConvertUsing <GuidToStringConverter>(); cfg.CreateMap <DateTimeOffset, DateTime>().ConvertUsing <DateTimeTypeConverter>(); cfg.AddProfile(new EntityRelationProfile()); cfg.AddProfile(new EntityProfile()); cfg.AddProfile(new RecordPermissionsProfile()); cfg.AddProfile(new FieldPermissionsProfile()); cfg.AddProfile(new FieldProfile()); cfg.AddProfile(new EntityRelationOptionsProfile()); cfg.AddProfile(new JobProfile()); cfg.AddProfile(new UserFileProfile()); cfg.AddProfile(new CurrencyProfile()); cfg.AddProfile(new DataSourceProfile()); cfg.CreateMap <EntityRecord, ErpUser>().ConvertUsing(new ErpUserConverter()); cfg.CreateMap <ErpUser, EntityRecord>().ConvertUsing(new ErpUserConverterOposite()); cfg.CreateMap <EntityRecord, ErpRole>().ConvertUsing(new ErpRoleConverter()); cfg.AddProfile(new ErrorModelProfile()); cfg.AddProfile(new SearchResultProfile()); cfg.AddProfile(new DatabaseNNRelationRecordProfile()); } }
private void RegistrationMapper(IServiceCollection services) { var configurationExpression = new MapperConfigurationExpression(); configurationExpression.CreateMap <CitizenUser, ProfileViewModel>(); configurationExpression.CreateMap <ProfileViewModel, CitizenUser>(); configurationExpression.CreateMap <CitizenUser, RegistrationViewModel>(); configurationExpression.CreateMap <RegistrationViewModel, CitizenUser>(); configurationExpression.CreateMap <Adress, AdressViewModel>(); configurationExpression.CreateMap <AdressViewModel, Adress>(); configurationExpression.CreateMap <HealthDepartment, HealthDepartmentViewModel>(); configurationExpression.CreateMap <HealthDepartmentViewModel, HealthDepartment>(); configurationExpression.CreateMap <Bus, BusViewModel>(); configurationExpression.CreateMap <BusViewModel, Bus>(); configurationExpression.CreateMap <Bus, BusManageViewModel>(); configurationExpression.CreateMap <BusManageViewModel, Bus>(); configurationExpression.CreateMap <BusRoute, BusManageViewModel>(); configurationExpression.CreateMap <BusManageViewModel, BusRoute>(); configurationExpression.CreateMap <Bus, BusOrderViewModel>(); configurationExpression.CreateMap <BusOrderViewModel, Bus>(); configurationExpression.CreateMap <UserTask, UserTaskViewModel>(); configurationExpression.CreateMap <UserTaskViewModel, UserTask>(); var mapperConfiguration = new MapperConfiguration(configurationExpression); var mapper = new Mapper(mapperConfiguration); services.AddScoped <IMapper>(s => mapper); }
public static void ConfigureAutoMapper(this Container container, params Assembly[] additionalAssemblies) { container.Options.AllowOverridingRegistrations = true; var assemblies = new List <Assembly>(additionalAssemblies.Length + 1); assemblies.Add(typeof(AutoMapperConfig).Assembly); assemblies.AddRange(additionalAssemblies); var configAssemblies = assemblies.Distinct().ToArray(); container.RegisterSingleton <IMapper>(() => { var mce = new MapperConfigurationExpression(); mce.ConstructServicesUsing(container.GetInstance); mce.AddMaps(configAssemblies); mce.MapStringEnums(configAssemblies); return(new Mapper(new MapperConfiguration(mce), container.GetInstance)); }); container.Options.AllowOverridingRegistrations = false; }
public static void SetMappers() { try { var cfg = new MapperConfigurationExpression { AllowNullCollections = true }; cfg.CreateMap <OptionsObject.Data, DataTables.SettingsTb>().ForMember(x => x.AutoIdSettings, opt => opt.Ignore()); cfg.CreateMap <UserDataObject, DataTables.InfoUsersTb>().ForMember(x => x.AutoIdInfoUsers, opt => opt.Ignore()); cfg.CreateMap <GenresObject.DataGenres, DataTables.GenresTb>().ForMember(x => x.AutoIdGenres, opt => opt.Ignore()); cfg.CreateMap <PricesObject.DataPrice, DataTables.PriceTb>().ForMember(x => x.AutoIdPrice, opt => opt.Ignore()); cfg.CreateMap <SoundDataObject, DataTables.SharedTb>().ForMember(x => x.AutoIdShared, opt => opt.Ignore()); cfg.CreateMap <SoundDataObject, DataTables.LatestDownloadsTb>().ForMember(x => x.AutoIdaLatestDownloads, opt => opt.Ignore()); cfg.CreateMap <SoundDataObject, DataTables.PublicRecentlyPlayedTb>().ForMember(x => x.AutoIdPublicRecentlyPlayed, opt => opt.Ignore()); Mapper.Initialize(cfg); } catch (Exception e) { Console.WriteLine(e); } }
public IMapper GetMapper() { var mce = new MapperConfigurationExpression(); mce.ConstructServicesUsing(_container.GetInstance); var profiles = typeof(ViewModelToDomainMappingProfile).Assembly.GetTypes() .Where(t => typeof(Profile).IsAssignableFrom(t)) .ToList(); mce.AddProfiles(new List <Profile> { new ViewModelToDomainMappingProfile(), new DomainToViewModelMappingProfile() }); //mce.AddProfiles(profiles); var mc = new MapperConfiguration(mce); // mc.AssertConfigurationIsValid(); IMapper m = new Mapper(mc, t => _container.GetInstance(t)); return(m); }
public static void Bootstrap(MapperConfigurationExpression cfg) { cfg.AddProfiles(Assembly.GetExecutingAssembly()); DAL.IoC.MapperBootstrapper.Bootstrap(cfg); }
public DotMapperConfiguration(MapperConfigurationExpression configurationExpression) : base(configurationExpression) { }
public MapperProfileManager() { mapperConfig = new MapperConfigurationExpression(); }
/// <summary> /// 创建对象映射 /// </summary> /// <param name="mapper">映射配置表达</param> public void CreateMaps(MapperConfigurationExpression mapper) { mapper.CreateMap <MenuInfo, MenuInfoOutputDto>() .ForMember(dto => dto.Children, opt => opt.MapFrom(entity => entity.Children.Select(m => m.MapTo <MenuInfoOutputDto>()))); }
public MapperConfiguration(MapperConfigurationExpression configurationExpression) : this(configurationExpression, MapperRegistry.Mappers) { }
public void ConfigMap(MapperConfigurationExpression mapConfig) { mapConfig.CreateMap <Post, PostViewModel>(); }
/// <summary> /// 创建对象映射 /// </summary> /// <param name="mapper">映射配置表达</param> public void CreateMaps(MapperConfigurationExpression mapper) { mapper.CreateMap <Role, RoleNode>().ForMember(rn => rn.RoleId, opt => opt.MapFrom(r => r.Id)) .ForMember(rn => rn.RoleName, opt => opt.MapFrom(r => r.Name)); }
public Startup(IConfiguration configuration) { Configuration = configuration; _cfg = new MapperConfigurationExpression(); _container = new Container(); }
private void CreatePaymentRequestsMaps(MapperConfigurationExpression mce) { mce.CreateMap <PaymentRequestModel, PaymentRequestViewModel>() .ForMember(o => o.PaymentAssetGeneralSettings, e => e.Ignore()) .ForMember(o => o.SettlementAssetGeneralSettings, e => e.Ignore()); }
public void RegisterMappingProfiles(MapperConfigurationExpression mce) { // no mapping }
public static void Initialize(MapperConfigurationExpression cfg) { Mapper = new Mapper(new MapperConfiguration(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 <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 static void ControllerMap() { MapperConfigurationExpression _configuration = ICreative.Services.AutoMapperBootStrapper.Configuation; _configuration.CreateMap <PosDeviceView, PosDeviceFlatViewModel>(); _configuration.CreateMap <PosAddressView, PosAddressFlatViewModel>(); _configuration.CreateMap <PosStatusTerminalView, PosStatusTerminalFlatViewModel>(); _configuration.CreateMap <PosStatusSimView, PosStatusSimFlatViewModel>(); _configuration.CreateMap <PosSimProviderView, PosSimProviderFlatViewModel>(); _configuration.CreateMap <PosMerchantView, PosMerchantFlatViewModel>(); _configuration.CreateMap <PosSimView, PosSimFlatViewModel>(); _configuration.CreateMap <PosReceiptOfTestingView, PosReceiptOfTestingFlatViewModel>(); _configuration.CreateMap <PosReceiptOfDeliveryView, PosReceiptOfDeliveryFlatViewModel>(); _configuration.CreateMap <PosTerminalView, PosTerminalFlatViewModel>(); _configuration.CreateMap <CategoryView, CategoryFlatViewModel>(); _configuration.CreateMap <MenuItemView, MenuItemFlatViewModel>(); _configuration.CreateMap <PermissionView, PermissionFlatViewModel>(); _configuration.CreateMap <EmployeeView, EmployeeFlatViewModel>(); _configuration.CreateMap <CustomerView, CustomerFlatViewModel>(); _configuration.CreateMap <CustomerDemographicView, CustomerDemographicFlatViewModel>(); _configuration.CreateMap <RoleView, RoleFlatViewModel>(); _configuration.CreateMap <RestrictionView, RestrictionFlatViewModel>(); _configuration.CreateMap <RegionView, RegionFlatViewModel>(); _configuration.CreateMap <SupplierView, SupplierFlatViewModel>(); _configuration.CreateMap <ShipperView, ShipperFlatViewModel>(); _configuration.CreateMap <RoomView, RoomFlatViewModel>(); _configuration.CreateMap <TerritoryView, TerritoryFlatViewModel>(); _configuration.CreateMap <ProductView, ProductFlatViewModel>(); _configuration.CreateMap <OrderView, OrderFlatViewModel>(); _configuration.CreateMap <UserView, UserFlatViewModel>(); //DetaiView map _configuration.CreateMap <PosDeviceView, PosDeviceDetailView>(); _configuration.CreateMap <PosAddressView, PosAddressDetailView>(); _configuration.CreateMap <PosStatusTerminalView, PosStatusTerminalDetailView>(); _configuration.CreateMap <PosStatusSimView, PosStatusSimDetailView>(); _configuration.CreateMap <PosSimProviderView, PosSimProviderDetailView>(); _configuration.CreateMap <PosMerchantView, PosMerchantDetailView>(); _configuration.CreateMap <PosSimView, PosSimDetailView>(); _configuration.CreateMap <PosReceiptOfTestingView, PosReceiptOfTestingDetailView>(); _configuration.CreateMap <PosReceiptOfDeliveryView, PosReceiptOfDeliveryDetailView>(); _configuration.CreateMap <PosTerminalView, PosTerminalDetailView>(); _configuration.CreateMap <CategoryView, CategoryDetailView>(); _configuration.CreateMap <MenuItemView, MenuItemDetailView>(); _configuration.CreateMap <PermissionView, PermissionDetailView>(); _configuration.CreateMap <EmployeeView, EmployeeDetailView>(); _configuration.CreateMap <CustomerView, CustomerDetailView>(); _configuration.CreateMap <CustomerDemographicView, CustomerDemographicDetailView>(); _configuration.CreateMap <RoleView, RoleDetailView>(); _configuration.CreateMap <RestrictionView, RestrictionDetailView>(); _configuration.CreateMap <RegionView, RegionDetailView>(); _configuration.CreateMap <SupplierView, SupplierDetailView>(); _configuration.CreateMap <ShipperView, ShipperDetailView>(); _configuration.CreateMap <RoomView, RoomDetailView>(); _configuration.CreateMap <TerritoryView, TerritoryDetailView>(); _configuration.CreateMap <ProductView, ProductDetailView>(); _configuration.CreateMap <OrderView, OrderDetailView>(); _configuration.CreateMap <UserView, UserDetailView>(); //ModifyRequest map _configuration.CreateMap <PosDeviceView, ModifyPosDeviceRequest>(); _configuration.CreateMap <PosAddressView, ModifyPosAddressRequest>(); _configuration.CreateMap <PosStatusTerminalView, ModifyPosStatusTerminalRequest>(); _configuration.CreateMap <PosStatusSimView, ModifyPosStatusSimRequest>(); _configuration.CreateMap <PosSimProviderView, ModifyPosSimProviderRequest>(); _configuration.CreateMap <PosMerchantView, ModifyPosMerchantRequest>(); _configuration.CreateMap <PosSimView, ModifyPosSimRequest>(); _configuration.CreateMap <PosReceiptOfTestingView, ModifyPosReceiptOfTestingRequest>(); _configuration.CreateMap <PosReceiptOfDeliveryView, ModifyPosReceiptOfDeliveryRequest>(); _configuration.CreateMap <PosTerminalView, ModifyPosTerminalRequest>(); _configuration.CreateMap <CategoryView, ModifyCategoryRequest>(); _configuration.CreateMap <MenuItemView, ModifyMenuItemRequest>(); _configuration.CreateMap <PermissionView, ModifyPermissionRequest>(); _configuration.CreateMap <EmployeeView, ModifyEmployeeRequest>(); _configuration.CreateMap <CustomerView, ModifyCustomerRequest>(); _configuration.CreateMap <CustomerDemographicView, ModifyCustomerDemographicRequest>(); _configuration.CreateMap <RoleView, ModifyRoleRequest>(); _configuration.CreateMap <RestrictionView, ModifyRestrictionRequest>(); _configuration.CreateMap <RegionView, ModifyRegionRequest>(); _configuration.CreateMap <SupplierView, ModifySupplierRequest>(); _configuration.CreateMap <ShipperView, ModifyShipperRequest>(); _configuration.CreateMap <RoomView, ModifyRoomRequest>(); _configuration.CreateMap <TerritoryView, ModifyTerritoryRequest>(); _configuration.CreateMap <ProductView, ModifyProductRequest>(); _configuration.CreateMap <OrderView, ModifyOrderRequest>(); _configuration.CreateMap <UserView, ModifyUserRequest>(); _configuration.CreateMap <PosDeviceView, DetailPosDevice_PosDeviceDetailView>(); _configuration.CreateMap <PosDeviceView, DetailPosDevice_PosTerminalDetailView>(); _configuration.CreateMap <PosAddressView, DetailPosAddress_PosAddressDetailView>(); _configuration.CreateMap <PosAddressView, DetailPosAddress_PosMerchantDetailView>(); _configuration.CreateMap <PosStatusTerminalView, DetailPosStatusTerminal_PosStatusTerminalDetailView>(); _configuration.CreateMap <PosStatusTerminalView, DetailPosStatusTerminal_PosTerminalDetailView>(); _configuration.CreateMap <PosStatusSimView, DetailPosStatusSim_PosStatusSimDetailView>(); _configuration.CreateMap <PosStatusSimView, DetailPosStatusSim_PosSimDetailView>(); _configuration.CreateMap <PosSimProviderView, DetailPosSimProvider_PosSimProviderDetailView>(); _configuration.CreateMap <PosSimProviderView, DetailPosSimProvider_PosSimDetailView>(); _configuration.CreateMap <PosMerchantView, DetailPosMerchant_PosMerchantDetailView>(); _configuration.CreateMap <PosMerchantView, DetailPosMerchant_PosReceiptOfTestingDetailView>(); _configuration.CreateMap <PosSimView, DetailPosSim_PosSimDetailView>(); _configuration.CreateMap <PosSimView, DetailPosSim_PosTerminalDetailView>(); _configuration.CreateMap <PosReceiptOfTestingView, DetailPosReceiptOfTesting_PosReceiptOfTestingDetailView>(); _configuration.CreateMap <PosReceiptOfTestingView, DetailPosReceiptOfTesting_PosTerminalDetailView>(); _configuration.CreateMap <PosReceiptOfDeliveryView, DetailPosReceiptOfDelivery_PosReceiptOfDeliveryDetailView>(); _configuration.CreateMap <PosReceiptOfDeliveryView, DetailPosReceiptOfDelivery_PosTerminalDetailView>(); _configuration.CreateMap <PosTerminalView, DetailPosTerminal_PosTerminalDetailView>(); _configuration.CreateMap <PosTerminalView, DetailPosTerminal_PosReceiptOfDeliveryDetailView>(); _configuration.CreateMap <PosTerminalView, DetailPosTerminal_PosReceiptOfTestingDetailView>(); _configuration.CreateMap <CategoryView, DetailCategory_CategoryDetailView>(); _configuration.CreateMap <CategoryView, DetailCategory_ProductDetailView>(); _configuration.CreateMap <MenuItemView, DetailMenuItem_MenuItemDetailView>(); _configuration.CreateMap <PermissionView, DetailPermission_PermissionDetailView>(); _configuration.CreateMap <PermissionView, DetailPermission_RoleDetailView>(); _configuration.CreateMap <PermissionView, DetailPermission_UserDetailView>(); _configuration.CreateMap <EmployeeView, DetailEmployee_EmployeeDetailView>(); _configuration.CreateMap <EmployeeView, DetailEmployee_TerritoryDetailView>(); _configuration.CreateMap <EmployeeView, DetailEmployee_OrderDetailView>(); _configuration.CreateMap <CustomerView, DetailCustomer_CustomerDetailView>(); _configuration.CreateMap <CustomerView, DetailCustomer_CustomerDemographicDetailView>(); _configuration.CreateMap <CustomerView, DetailCustomer_OrderDetailView>(); _configuration.CreateMap <CustomerDemographicView, DetailCustomerDemographic_CustomerDemographicDetailView>(); _configuration.CreateMap <CustomerDemographicView, DetailCustomerDemographic_CustomerDetailView>(); _configuration.CreateMap <RoleView, DetailRole_RoleDetailView>(); _configuration.CreateMap <RoleView, DetailRole_PermissionDetailView>(); _configuration.CreateMap <RoleView, DetailRole_UserDetailView>(); _configuration.CreateMap <RestrictionView, DetailRestriction_RestrictionDetailView>(); _configuration.CreateMap <RegionView, DetailRegion_RegionDetailView>(); _configuration.CreateMap <RegionView, DetailRegion_TerritoryDetailView>(); _configuration.CreateMap <SupplierView, DetailSupplier_SupplierDetailView>(); _configuration.CreateMap <SupplierView, DetailSupplier_ProductDetailView>(); _configuration.CreateMap <ShipperView, DetailShipper_ShipperDetailView>(); _configuration.CreateMap <ShipperView, DetailShipper_OrderDetailView>(); _configuration.CreateMap <RoomView, DetailRoom_RoomDetailView>(); _configuration.CreateMap <RoomView, DetailRoom_UserDetailView>(); _configuration.CreateMap <TerritoryView, DetailTerritory_TerritoryDetailView>(); _configuration.CreateMap <TerritoryView, DetailTerritory_EmployeeDetailView>(); _configuration.CreateMap <ProductView, DetailProduct_ProductDetailView>(); _configuration.CreateMap <ProductView, DetailProduct_OrderDetailView>(); _configuration.CreateMap <OrderView, DetailOrder_OrderDetailView>(); _configuration.CreateMap <OrderView, DetailOrder_ProductDetailView>(); _configuration.CreateMap <UserView, DetailUser_UserDetailView>(); _configuration.CreateMap <UserView, DetailUser_RoleDetailView>(); _configuration.CreateMap <UserView, DetailUser_PermissionDetailView>(); _configuration.CreateMap <UserView, DetailUser_PosReceiptOfDeliveryDetailView>(); }
public void ConfigMap(MapperConfigurationExpression mapConfig) { mapConfig.CreateMap <UserCreateDto, User>(); }
public ResourceController(IResourceManager <TServerResource> resourceManager, IHttpSessionManager httpSessionManager, IAuthorizationPolicy <TServerResource> authorizationPolicy, Func <TClientResource, string> keyGenerator, IModelValidator <TServerResource> modelValidator, MapperConfigurationExpression modelMapperConfigurationExpression) { this.resourceManager_ = resourceManager; this.httpSessionManager_ = httpSessionManager; this.authorizationPolicy_ = authorizationPolicy; this.keyGenerator_ = keyGenerator; this.modelValidator_ = modelValidator; var config = new MapperConfiguration(modelMapperConfigurationExpression); this.ModelMapper = config.CreateMapper(); }
public virtual void SetAutoMapperConfiguration(MapperConfigurationExpression cfg) { }
public IServiceCollection ConfigureServices(IServiceCollection oldServices, IServiceProvider oldServiceProvider) { if (_pluginContext.Services?.Count() > 0) { var newServices = oldServices; if (_services != null) { newServices = _services; } var services = new ServiceCollection(); services.AddOptions(); //添加基础service foreach (var service in newServices) { //Console.WriteLine(service.ServiceType.FullName); //if (_pluginContext.Services.Any(s => s.ServiceType == service.ServiceType)) // continue; //if (Controllers.Any(s => s == service.ServiceType)) // continue; if (service.ServiceType.IsGenericType && service.ServiceType.GenericTypeArguments.Length == 0) { services.Add(service); continue; } if (service.Lifetime != ServiceLifetime.Transient) { var instance = oldServiceProvider.GetService(service.ServiceType); if (instance == null) { services.Add(service); continue; } var instanceType = instance.GetType(); var canAddDirect = service.ImplementationType != null && (instanceType == service.ImplementationType || instanceType.IsAssignableFrom(service.ImplementationType)); var sourceType = typeof(ServiceDescriptor); if (canAddDirect) { var scopedMethod = getMethod(sourceType, service.Lifetime.ToString(), new Type[] { service.ServiceType, service.ImplementationType }, new Type[] { typeof(Func <,>).MakeGenericType(typeof(IServiceProvider), service.ImplementationType) }); var func = GetLambdaFunc(service.ImplementationType, instance).Compile(); var serviceDesc = (ServiceDescriptor)scopedMethod.Invoke(null, new object[] { func }); services.Add(serviceDesc); } else { if (service.Lifetime == ServiceLifetime.Singleton) { services.AddSingleton(service.ServiceType, p => instance); } else { services.AddScoped(service.ServiceType, p => instance); } } } if (service.Lifetime == ServiceLifetime.Transient) { services.Add(service); } } if (_services == null) { #region 重置automapper配置 var profiles = _pluginContext.AutoMapperProfiles; var configExpression = new MapperConfigurationExpression(); configExpression.AddProfiles(profiles); configExpression.AddAutoMaperConfig(typeof(UserDto).Assembly, typeof(PluginInfoDto).Assembly); var configration = new MapperConfiguration(configExpression); services.AddSingleton <IConfigurationProvider>(configration); services.AddTransient <IMapper>(p => configration.CreateMapper()); #endregion foreach (var item in _pluginContext.Services) { services.Add(item); } //添加plugin controllers foreach (var type in Controllers) { services.AddScoped(type); } services.AddSingleton <IProxyTypeGenerator, ProxyTypeGenerator>(); _services = services.WeaveDynamicProxyService(); } else { _services = services; } return(_services); } return(oldServices); }
public void RegisterMappingProfiles(MapperConfigurationExpression mce) => mce.AddProfile<ContributorsApiMappingProfile>();