public IEnumerable <ISitecoreItem> BuildTemplates() { var templateData = new List <ISitecoreItem>(); var builder = new TemplateBuilder(); builder.CreateTemplate("ProductCategoryTemplate", FieldIds.Category.ProductCategoryTemplateId, "Product Category Template", TemplateIDs.StandardTemplate); BuildCommonSection(builder, 100); BuildMediaSection(builder, 200); var template = builder.Build(); template.AddToFieldList(FieldIDs.Icon, SitecoreConstants.UCommerceIconFolder + "/ui/map.png"); template.AddToFieldList(FieldIDs.Revision, Guid.NewGuid().ToString()); templateData.Add(template); var categoryDefinitionType = DefinitionType.Get(1); var repository = ObjectFactory.Instance.Resolve <IRepository <Definition> >(); var definitions = repository.Select(x => x.DefinitionType == categoryDefinitionType).ToList(); foreach (var definition in definitions) { var definitionTemplate = _dynamicCategoryTemplate.BuildCategoryTemplateFromDefinition(definition); definitionTemplate.SetRevision(definition.Guid.Derived(definition.ModifiedOn)); templateData.Add(definitionTemplate); } return(templateData); }
private static Definition GetDefaultDefinition() { var definition = Definition.SingleOrDefault(d => d.Name == "Default Category Definition"); if (definition == null) { definition = new Definition { Name = "Default Category Definition", DefinitionType = DefinitionType.Get(1), Deleted = false, Guid = Guid.NewGuid(), SortOrder = 1, Description = "Default Category Definition" } } ; definition.Save(); return(definition); }
public PipelineExecutionResult Execute(InstallationPipelineArgs subject) { var sharedFieldRepository = ObjectFactory.Instance.Resolve <IRepository <SharedField> >(); var sharedFieldsToSave = new List <SharedField>(); var productDefinitions = ProductDefinition.All().ToList(); var categoryDefinitions = Definition.All().Where(x => x.DefinitionType == DefinitionType.Get(1)).ToList(); foreach (var productDefinition in productDefinitions) { sharedFieldsToSave.Add(new SharedField() { FieldValue = GetXmlLayoutValueForProduct(), FieldId = FieldIDs.LayoutField.Guid, ItemId = productDefinition.Guid.Derived("__Standard Values") // This must be set on the Standard Values item. Not the template item directly. }); } foreach (var categoryDefinition in categoryDefinitions) { sharedFieldsToSave.Add(new SharedField() { FieldValue = GetXmlLayoutValueForCategory(), FieldId = FieldIDs.LayoutField.Guid, ItemId = categoryDefinition.Guid.Derived("__Standard Values") // This must be set on the Standard Values item. Not the template item directly. }); } sharedFieldRepository.Save(sharedFieldsToSave); return(PipelineExecutionResult.Success); }