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