/// <summary> /// Get Attribute for specified Typ /// </summary> /// <returns><see cref="Attribute{ValueType}"/></returns> public static IAttributeManagement GetAttributeManagementModel(IAttributeBase definition) { switch (definition.ControlledType) { case AttributeTypeEnum.Boolean: return new Attribute<bool?>(definition.Name, definition.Type, definition.IsTitle, definition.AttributeId, definition.SortOrder); case AttributeTypeEnum.DateTime: return new Attribute<DateTime?>(definition.Name, definition.Type, definition.IsTitle, definition.AttributeId, definition.SortOrder); case AttributeTypeEnum.Number: return new Attribute<decimal?>(definition.Name, definition.Type, definition.IsTitle, definition.AttributeId, definition.SortOrder); case AttributeTypeEnum.Entity: return new Attribute<EntityRelationship>(definition.Name, definition.Type, definition.IsTitle, definition.AttributeId, definition.SortOrder) { Values = new IValue[] { EntityRelationshipDefaultValue } }; case AttributeTypeEnum.String: case AttributeTypeEnum.Hyperlink: case AttributeTypeEnum.Custom: default: return new Attribute<string>(definition.Name, definition.Type, definition.IsTitle, definition.AttributeId, definition.SortOrder); } }
/// <summary> /// In case of an error, show a nicer, consistent message /// </summary> /// <param name="attributeDefinition"></param> /// <param name="foundValue"></param> private static Exception ValueMappingError(IAttributeBase attributeDefinition, object foundValue) => new Exception("Tried to create " + attributeDefinition.Name + " and couldn't convert to correct " + attributeDefinition.Type + ": '" + foundValue + "'");
/// <summary> /// In case of an error, show a nicer, consistent message /// </summary> /// <param name="attributeDefinition"></param> /// <param name="foundValue"></param> private static void ThrowValueMappingError(IAttributeBase attributeDefinition, object foundValue) { throw new Exception("Tried to create " + attributeDefinition.Name + " and couldn't convert to correct " + attributeDefinition.Type + ": '" + foundValue + "'"); }