Ejemplo n.º 1
0
        public SeparateConfiguration()
        {
            var expr = new MapperConfigurationExpression();

            expr.CreateMap<Source, Dest>();

            var configuration = new MapperConfiguration(expr);

            Configuration = configuration;
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 4
0
        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>();
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        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());
            }
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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;
        }
Ejemplo n.º 12
0
        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);
            }
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        public static void Bootstrap(MapperConfigurationExpression cfg)
        {
            cfg.AddProfiles(Assembly.GetExecutingAssembly());

            DAL.IoC.MapperBootstrapper.Bootstrap(cfg);
        }
Ejemplo n.º 15
0
 public DotMapperConfiguration(MapperConfigurationExpression configurationExpression) : base(configurationExpression)
 {
 }
 public MapperProfileManager()
 {
     mapperConfig = new MapperConfigurationExpression();
 }
Ejemplo n.º 17
0
 /// <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>())));
 }
Ejemplo n.º 18
0
 public MapperConfiguration(MapperConfigurationExpression configurationExpression)
     : this(configurationExpression, MapperRegistry.Mappers)
 {
 }
Ejemplo n.º 19
0
 public void ConfigMap(MapperConfigurationExpression mapConfig)
 {
     mapConfig.CreateMap <Post, PostViewModel>();
 }
Ejemplo n.º 20
0
 /// <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));
 }
Ejemplo n.º 21
0
 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
 }
Ejemplo n.º 24
0
 public static void Initialize(MapperConfigurationExpression cfg)
 {
     Mapper = new Mapper(new MapperConfiguration(cfg));
 }
Ejemplo n.º 25
0
        /// <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>();
        }
Ejemplo n.º 27
0
 public void ConfigMap(MapperConfigurationExpression mapConfig)
 {
     mapConfig.CreateMap <UserCreateDto, User>();
 }
Ejemplo n.º 28
0
        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();
        }
Ejemplo n.º 29
0
 public virtual void SetAutoMapperConfiguration(MapperConfigurationExpression cfg)
 {
 }
Ejemplo n.º 30
0
        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>();