コード例 #1
0
        public GlobalConfigMappings(IStoredConfigAsService storedConfigAsService, IYuzuConfiguration config, IYuzuDeliveryImportConfiguration importConfig, IVmHelperService vmHelperService)
        {
            var globalConfigs = storedConfigAsService.GetAll <GlobalStoreContentAs>();

            foreach (var global in globalConfigs)
            {
                var vmName = global.Key;

                var documentTypeAlias = global.Value.DocumentTypeAlias;
                if (string.IsNullOrEmpty(documentTypeAlias))
                {
                    documentTypeAlias = vmHelperService.Get(vmName).ContentType.Alias;
                }

                var groupName = global.Value.StoreContentAs.GroupName;

                var sourceType = config.CMSModels.Where(x => x.Name.ToLower() == documentTypeAlias.ToLower()).FirstOrDefault();
                var dest       = config.ViewModels.Where(x => x.Name == vmName).FirstOrDefault();

                if (sourceType != null && dest != null)
                {
                    ManualMaps.AddGlobal(sourceType, dest, groupName);
                }
            }
        }
コード例 #2
0
        public GroupedConfigMappings(IStoredConfigAsService storedConfigAsService, IYuzuConfiguration config, IYuzuDeliveryImportConfiguration importConfig, IVmGetterService vmGetterService)
        {
            var groupedConfigs = storedConfigAsService.GetAll <GroupStoreContentAs>();

            foreach (var group in groupedConfigs)
            {
                var vmName            = group.Key;
                var documentTypeAlias = group.Value.DocumentTypeAlias;
                var groupSettings     = group.Value.StoreContentAs.As <GroupStoreContentAs>();

                var groupName = group.Value.StoreContentAs.GroupName;
                if (string.IsNullOrEmpty(groupName))
                {
                    groupName = importConfig.DefaultPropertyGroup;
                }

                var parentPropertyName = groupSettings.ParentPropertyName;

                var sourceType = config.CMSModels.Where(x => x.Name.ToLower() == documentTypeAlias.ToLower()).FirstOrDefault();
                var destParent = config.ViewModels.Where(x => x.Name == groupSettings.ParentPropertyType).FirstOrDefault();
                var destChild  = config.ViewModels.Where(x => x.Name == vmName).FirstOrDefault();

                if (sourceType != null && destParent != null && destChild != null)
                {
                    ManualMaps.AddGroup(sourceType, destParent, destChild, parentPropertyName, groupName);
                }
            }
        }
コード例 #3
0
 private void AddResolverMapping(VmPropertyMappingsFinder.Settings i, Type resolverType)
 {
     ManualMaps.Add(new YuzuFullPropertyMapperSettings()
     {
         Mapper             = typeof(IYuzuFullPropertyMapper),
         Resolver           = resolverType,
         SourcePropertyName = i.SourcePropertyName,
         DestPropertyName   = i.DestPropertyName
     });
 }
コード例 #4
0
        public FormAutoMapping(IVmPropertyMappingsFinder vmPropertyMappingsFinder)
        {
            var formMappings = vmPropertyMappingsFinder.GetMappings <vmBlock_DataForm>();

            foreach (var i in formMappings)
            {
                if (i.SourceType != null)
                {
                    var resolverType = typeof(FormValueResolver <,>).MakeGenericType(i.SourceType, i.DestType);

                    ManualMaps.Add(new YuzuFullPropertyMapperSettings()
                    {
                        Mapper             = typeof(IYuzuFullPropertyMapper),
                        Resolver           = resolverType,
                        SourcePropertyName = i.SourcePropertyName,
                        DestPropertyName   = i.DestPropertyName
                    });
                }
            }
        }
コード例 #5
0
        public SubBlocksMappings(IVmPropertyMappingsFinder vmPropertyMappingsFinder)
        {
            var listOfObjectsMappings = vmPropertyMappingsFinder.GetMappings <object>();

            foreach (var i in listOfObjectsMappings)
            {
                if (i.SourceType != null && i.SourceProperty != null && i.SourceProperty.PropertyType == typeof(IPublishedContent))
                {
                    var resolverType = typeof(SubBlocksObjectResolver <,>).MakeGenericType(i.SourceType, i.DestType);

                    ManualMaps.Add(new YuzuFullPropertyMapperSettings()
                    {
                        Mapper             = typeof(IYuzuFullPropertyMapper),
                        Resolver           = resolverType,
                        SourcePropertyName = i.SourcePropertyName,
                        DestPropertyName   = i.DestPropertyName
                    });
                }
            }
        }
コード例 #6
0
        public ManualMappingsMappings(ICustomManualMappersService manualMappersConfigService, IYuzuConfiguration config, IVmHelperService vmHelper)
        {
            foreach (var m in manualMappersConfigService.Mappers)
            {
                var manualMap = config.InstalledManualMaps.Where(x => x.Concrete.Name == m.Mapper).FirstOrDefault();
                var link      = vmHelper.Get(m.Dest);

                if (manualMap != null)
                {
                    if (manualMap.Concrete.HasInterface <IYuzuTypeAfterConvertor>())
                    {
                        ManualMaps.AddTypeAfterMap(manualMap.Concrete);
                    }

                    if (manualMap.Concrete.HasInterface <IYuzuTypeConvertor>())
                    {
                        ManualMaps.AddTypeReplace(manualMap.Concrete);
                    }

                    //Can't do this yet, automapper AddTransofrm bug
                    //if (manualMap.Concrete.HasInterface<IYuzuPropertyAfterResolver>())
                    //    ManualMaps.AddPropertyAfter(manualMap.Concrete, destVm, m.DestMember, m.Group);

                    if (manualMap.Concrete.HasInterface <IYuzuPropertyReplaceResolver>())
                    {
                        ManualMaps.AddPropertyReplace(manualMap.Concrete, link.Viewmodel, m.DestMember, m.Group);
                    }

                    if (manualMap.Concrete.HasInterface <IYuzuTypeFactory>() && !string.IsNullOrEmpty(m.DestMember))
                    {
                        ManualMaps.AddPropertyFactory(manualMap.Concrete, link.CMSModel, link.Viewmodel, m.DestMember, m.Group);
                    }

                    if (manualMap.Concrete.HasInterface <IYuzuTypeFactory>() && string.IsNullOrEmpty(m.DestMember))
                    {
                        ManualMaps.AddTypeFactory(manualMap.Concrete, link.Viewmodel);
                    }
                }
            }
        }
コード例 #7
0
        private Type AddConfigMapping <V>(PropertyInfo destProperty, ConfigType type)
        {
            var path = "/rows/config";

            if (type == ConfigType.Cells)
            {
                path = "/rows/columns/config";
            }

            var ofType = schemaMetaService.GetOfType(destProperty, "refs");

            if (!string.IsNullOrEmpty(ofType))
            {
                var configTypeName = schemaMetaService.Get(typeof(V), "refs", path, ofType).FirstOrDefault();

                if (!string.IsNullOrEmpty(configTypeName))
                {
                    var configType = config.ViewModels.Where(x => x.Name == configTypeName).FirstOrDefault();

                    if (configType != null)
                    {
                        var configResolverType = typeof(GridConfigConverter <>).MakeGenericType(configType);
                        importConfig.IgnoreViewmodels.Add(configType.Name);

                        ManualMaps.Add(new YuzuTypeConvertorMapperSettings()
                        {
                            Mapper    = typeof(IYuzuTypeConvertorMapper),
                            Convertor = configResolverType
                        });

                        return(configType);
                    }
                }
            }

            return(null);
        }
コード例 #8
0
 public LinkMappings()
 {
     ManualMaps.AddTypeReplace <LinkIPublishedContentConvertor>(false);
     ManualMaps.AddTypeReplace <LinkConvertor>(false);
 }
コード例 #9
0
 public DefaultElementMapping()
 {
     ManualMaps.AddTypeReplace <DefaultPublishedElementCollectionConvertor>(false);
     ManualMaps.AddTypeReplace <DefaultPublishedElementCollectionToSingleConvertor>(false);
 }
コード例 #10
0
 public FormMappingConfig()
 {
     ManualMaps.AddTypeReplace <FormTypeConvertor>();
     ManualMaps.AddTypeReplace <FormBuilderTypeConverter>();
 }
コード例 #11
0
 public ImageMappings()
 {
     ManualMaps.AddTypeReplace <ImageConvertor>(false);
 }