Power Ucommerce facet display names from the CMS

ProductDefinitionFieldRepository = Ucommerce.Infrastructure.ObjectFactory.Instance.Resolve>(); private static Dictionary> AllDisplayNames; public static FieldDefinition DisplayNameFromUcommerce(this FieldDefinition self) { var displayName = GetProductDefinitionFieldDescriptions(self.Name); foreach (var description in displayName) self.DisplayNames[description.CultureCode] = description.DisplayName; return self; } private static void EnsureProductDefinitionFields() { if (AllDisplayNames != null) return; AllDisplayNames = new Dictionary>(); var definitionFields = ProductDefinitionFieldRepository.Select(f => f.Deleted == false); foreach (var field in definitionFields) { if (!AllDisplayNames.ContainsKey(field.Name)) AllDisplayNames.Add(field.Name, field.ProductDefinitionFieldDescriptions); } } private static ICollection GetProductDefinitionFieldDescriptions(string key) { EnsureProductDefinitionFields(); return (AllDisplayNames.TryGetValue(key, out var descriptions)) ? descriptions : Enumerable.Empty().ToList(); } } }

Subscribe to TSD

Don’t miss out on the latest posts. Sign up now to get access to the library of members-only posts.
jamie@example.com
Subscribe