// Definition Field public static ID GetOrCreateSitecoreDynamicFieldFieldId(this DefinitionField @this, ID parentId) { var id = new ID(@this.Guid); DynamicFieldIds.Add(id); return(id); }
/// <summary> /// HACK/TODO: This was quickly added after some third party testing discovered that the /// 'SitefinityId' DefinitionField is not getting added on the fly in the Taxonomy RTS /// flow. Refactor this out of here, either making a separate RTS operation/flow for /// custom property definitions or figure out why UCommerce/nHibernate is not /// creating new Definition Fields on the fly as part of cascade saves in the Taxonomy flow. /// </summary> private void WriteCustomSitefinityIdDefinitionField() { const string sitefinityUniqueIdPropertyName = "SitefinityId"; var definitionField = _session.Query <DefinitionField>().FirstOrDefault(x => x.Name == sitefinityUniqueIdPropertyName); if (definitionField != null) { return; } using (var tx = _session.BeginTransaction()) { var defaultDefinition = _session.Query <Definition>() .FirstOrDefault(x => x.Name == "Default Category Definition"); var dataType = _session.Query <DataType>().FirstOrDefault(x => x.TypeName == "ShortText"); definitionField = new DefinitionField() { Name = sitefinityUniqueIdPropertyName, Multilingual = false, Searchable = false, BuiltIn = false, DefaultValue = string.Empty, DisplayOnSite = false, DataType = dataType, Definition = defaultDefinition }; _session.SaveOrUpdate(definitionField); tx.Commit(); } _session.Flush(); }
private DefinitionField GetCategoryPropertyDefinitionField(string sourceDefinitionFieldName) { var definitionField = _session.Query <DefinitionField>().FirstOrDefault(x => x.Name == sourceDefinitionFieldName); if (definitionField != null) { return(definitionField); } var defaultDefinition = _session.Query <Definition>().FirstOrDefault(x => x.Name == "Default Category Definition"); var dataType = _session.Query <DataType>().FirstOrDefault(x => x.TypeName == "ShortText"); definitionField = new DefinitionField() { Name = sourceDefinitionFieldName, Multilingual = true, Searchable = false, BuiltIn = false, DefaultValue = string.Empty, DisplayOnSite = false, DataType = dataType, Definition = defaultDefinition }; return(definitionField); }
private static IProperty GetDynamicProperty(FieldChange fieldChange, Category category) { IProperty property; var definition = DefinitionField.SingleOrDefault( x => x.Name == fieldChange.Definition.Name && x.Definition.DefinitionType.DefinitionTypeId == 1); property = definition.Multilingual ? category.GetProperty(fieldChange.Definition.Name, fieldChange.Language.CultureInfo.ToString()) : category.GetProperty(fieldChange.Definition.Name); return(property); }
private IExtractedEntity CreateGenericHandle(IGenericContext gc, Handle handle) { IExtractedEntity entity; switch (handle.Kind) { case HandleKind.MethodDefinition: entity = new DefinitionMethod(gc, (MethodDefinitionHandle)handle); break; case HandleKind.MemberReference: entity = Create(gc, (MemberReferenceHandle)handle); break; case HandleKind.MethodSpecification: entity = new MethodSpecificationMethod(gc, (MethodSpecificationHandle)handle); break; case HandleKind.FieldDefinition: entity = new DefinitionField(gc.Context, (FieldDefinitionHandle)handle); break; case HandleKind.TypeReference: var tr = new TypeReferenceType(this, (TypeReferenceHandle)handle); if (tr.TryGetPrimitiveType(out var pt)) { // Map special names like `System.Int32` to `int` return(pt); } entity = tr; break; case HandleKind.TypeSpecification: return(Entities.Type.DecodeType(gc, (TypeSpecificationHandle)handle)); case HandleKind.TypeDefinition: entity = new TypeDefinitionType(this, (TypeDefinitionHandle)handle); break; case HandleKind.StandaloneSignature: var signature = MdReader.GetStandaloneSignature((StandaloneSignatureHandle)handle); var method = signature.DecodeMethodSignature(gc.Context.TypeSignatureDecoder, gc); entity = new FunctionPointerType(this, method); break; default: throw new InternalError("Unhandled handle kind " + handle.Kind); } Populate(entity); return(entity); }
IExtractedEntity CreateGenericHandle(GenericContext gc, Handle handle) { IExtractedEntity entity; switch (handle.Kind) { case HandleKind.MethodDefinition: entity = new DefinitionMethod(gc, (MethodDefinitionHandle)handle); break; case HandleKind.MemberReference: entity = Create(gc, (MemberReferenceHandle)handle); break; case HandleKind.MethodSpecification: entity = new MethodSpecificationMethod(gc, (MethodSpecificationHandle)handle); break; case HandleKind.FieldDefinition: entity = new DefinitionField(gc, (FieldDefinitionHandle)handle); break; case HandleKind.TypeReference: var tr = new TypeReferenceType(this, (TypeReferenceHandle)handle); if (tr.TryGetPrimitiveType(out var pt)) { // Map special names like `System.Int32` to `int` return(pt); } entity = tr; break; case HandleKind.TypeSpecification: return(Entities.Type.DecodeType(gc, (TypeSpecificationHandle)handle)); case HandleKind.TypeDefinition: entity = new TypeDefinitionType(this, (TypeDefinitionHandle)handle); break; default: throw new InternalError("Unhandled handle kind " + handle.Kind); } Populate(entity); return(entity); }
public void RemoveDefinitionFields(Definition category, params string[] names) { foreach (var name in names) { try { DefinitionField toBeRemoved = _definitionFields.Value.SingleOrDefault(x => x.Name == name && x.Definition == category && !x.Deleted); if (toBeRemoved != null) { category.DefinitionFields.Remove(toBeRemoved); } } catch (Exception ex) { string message = string.Format("'{0}' category definition field doesn't exist.", name); throw new InvalidOperationException(message, ex); } } }
public DefinitionField AddDefinitionField(string name, Definition category, DataType type, bool multilingual = false) { DefinitionField field = _definitionFields.Value .SingleOrDefault(x => x.Name == name); if (field == null) { field = new DefinitionField(); } field.Definition = category; field.DataType = type; field.Name = name; field.DisplayOnSite = true; field.Multilingual = multilingual; field.RenderInEditor = true; field.Deleted = false; category.DefinitionFields.Add(field); return(field); }
private static void AddMultilingualDescriptions(PropertyInfo propertyInfo, DefinitionField field) { foreach (var language in propertyInfo.GetCustomAttributes<LanguageAttribute>()) { var fieldDescription = field.DefinitionFieldDescriptions .EmptyIfNull() .SingleOrDefault(x => x.CultureCode == language.Language); if (fieldDescription == null) { fieldDescription = new DefinitionFieldDescription { CultureCode = language.Language }; field.AddDescription(fieldDescription); } fieldDescription.DisplayName = language.DisplayName; fieldDescription.Description = language.Description ?? string.Empty; } }
internal static Tuple cil_internal(DefinitionField field) => new Tuple("cil_internal", field);
private DefinitionField CreateField(PropertyInfo propertyInfo, Definition definition) { var propertyAttribute = propertyInfo.AssertGetAttribute<FieldAttribute>(); var fieldName = propertyAttribute.Name.IsNotEmpty() ? propertyAttribute.Name : propertyInfo.Name; var field = definition.DefinitionFields .EmptyIfNull() .SingleOrDefault(x => x.Name == fieldName); if (field == null) { var dataType = _session.QueryOver<DataType>() .Where(x => x.TypeName == propertyAttribute.DataType) .SingleOrDefault(); field = new DefinitionField { Name = fieldName, DataType = dataType }; if (definition.DefinitionFields == null) definition.DefinitionFields = new Collection<DefinitionField>(); definition.AddDefinitionField(field); } field.DisplayOnSite = propertyAttribute.DisplayOnSite; field.Multilingual = propertyAttribute.Multilingual; field.RenderInEditor = propertyAttribute.RenderInEditor; field.Searchable = propertyAttribute.Searchable; field.SortOrder = propertyAttribute.SortOrder; field.DefaultValue = propertyAttribute.DefaultValue; return field; }