Пример #1
0
        public static IComponentLocalizationMapper GetComponentChildComponentLocalizationMapper(this Mappings mappings, CommerceEntity targetEntity, Component component, ILanguageEntity languageEntity, object sourceVariant, CommerceCommander commerceCommander, CommercePipelineExecutionContext context)
        {
            var metadataPolicy = component.GetComponentMetadataPolicy();
            var mapperType     = mappings
                                 .ItemVariationComponentMappings
                                 .FirstOrDefault(
                x => (metadataPolicy != null && !string.IsNullOrEmpty(metadataPolicy.MapperKey) && x.Key.Equals(metadataPolicy.MapperKey, StringComparison.OrdinalIgnoreCase)) ||
                x.Type.Equals(component.GetType().FullName, StringComparison.OrdinalIgnoreCase));

            if (mapperType != null)
            {
                var t = Type.GetType(mapperType.LocalizationFullTypeName ?? mapperType.FullTypeName);

                if (t != null)
                {
                    if (Activator.CreateInstance(t, languageEntity.GetEntity(), sourceVariant, targetEntity, component,
                                                 commerceCommander, context) is IComponentLocalizationMapper mapper)
                    {
                        return(mapper);
                    }
                }
            }

            return(null);
        }
Пример #2
0
        public override IList <IEntity> GetVariants(ILanguageEntity languageEntity)
        {
            var languages = GetLanguages();

            if (languages != null &&
                languages.Any())
            {
                var matchedLanguage = languages.FirstOrDefault(x =>
                                                               x.Language.Equals(languageEntity.Language, StringComparison.OrdinalIgnoreCase));
                if (matchedLanguage != null)
                {
                    return(GetVariants(languageEntity.GetEntity()));
                }
            }

            return(new List <IEntity>());
        }
Пример #3
0
        public override bool HasVariants(ILanguageEntity languageEntity)
        {
            var languages = GetLanguages();

            if (languages != null &&
                languages.Any())
            {
                var matchedLanguage = languages.FirstOrDefault(x =>
                                                               x.Language.Equals(languageEntity.Language, StringComparison.OrdinalIgnoreCase));
                if (matchedLanguage != null)
                {
                    var variants = GetVariants(languageEntity.GetEntity());
                    return(variants != null && variants.GetEnumerator().MoveNext());
                }
            }

            return(false);
        }
Пример #4
0
        public static IComponentLocalizationMapper GetItemVariantComponentLocalizationMapper(this Mappings mappings, CommerceEntity targetEntity, Component component, ILanguageEntity languageEntity, object sourceVariant, CommerceCommander commerceCommander, CommercePipelineExecutionContext context)
        {
            var mapperType = mappings
                             .ItemVariationMappings
                             .FirstOrDefault();

            if (mapperType != null)
            {
                var t = Type.GetType(mapperType.LocalizationFullTypeName ?? mapperType.FullTypeName);

                if (t != null)
                {
                    if (Activator.CreateInstance(t, languageEntity.GetEntity(), sourceVariant, targetEntity, component, commerceCommander, context) is IComponentLocalizationMapper mapper)
                    {
                        return(mapper);
                    }
                }
            }

            return(null);
        }
Пример #5
0
        public static IEntityLocalizationMapper GetEntityLocalizationMapper(this Mappings mappings, ILanguageEntity languageEntity, ImportEntityArgument importEntityArgument, CommerceCommander commerceCommander, CommercePipelineExecutionContext context)
        {
            var mapperType = mappings
                             .EntityMappings
                             .FirstOrDefault(x => x.Key.Equals(importEntityArgument.SourceEntityDetail.EntityType, StringComparison.OrdinalIgnoreCase));

            if (mapperType != null)
            {
                var t = Type.GetType(mapperType.ImportHandlerTypeName ?? mapperType.FullTypeName ?? mapperType.LocalizationFullTypeName);

                if (t != null)
                {
                    if (Activator.CreateInstance(t, languageEntity.GetEntity(), commerceCommander, context) is
                        IEntityLocalizationMapper mapper)
                    {
                        return(mapper);
                    }
                }
            }

            return(null);
        }