Namespace LemonEdge.API.Attributes
Classes
ComplexDefinitionAttribute
Can be marked against an interface to indicate this is a complex type used by LemonEdge and can be used in queries and the web service
DBTrackChangesAttribute
Indicates this property will be tracked, indicating if the value was changed, and what the original value was.
This is available in validations, but only in code executing directly against the database - services, or clients with direct db connections.
DefaultEntityIconAttribute
Specifies the default icon for the system to use whenever displaying this entity in menus, or other ui appropriate contexts
This can be the id of a system image (ImageType) or a custom image ( ImageID)
DefaultValueOnNewAttribute
Indicates this property has a default value that should be initialized whenever a new instance of this item is created
This can be a hard coded value, or a formula that is evaluated at run time
EntityAutoIncrementColumnAttribute
Indicates this property is an integer value that holds a value that should auto-increment by the system only, and is not editable by the user
When a new instance is created this will hold 0, only when the new item is saved the system will transactionally auto-increment its value from the last value.
It will not be changed again by the system, and will not allow user changes either
EntityColorAttribute
The default color to use when displaying this entity in entity structure mappings
EntityDefinitionAttribute
The main attribute for LemonEdge indicating this interface holds a definition of an entity that should be managed by LemonEdge.
This must be marked against an interface, the system will find the associated entity class implementation, or will create one dynamically if one does not exist
The system will automatically handle the back-end work for this entity such as creating database tables, functions/stored procedures, web service controllers, etc
If you change the TableName, ItemName, or SetName then you need to create a EntityDefinitionOldInfoAttribute with the old values so the system knows what to rename in the database
Any entity marked with this will have an EntityDescriptor created for it by the system during runtime that holds the description of everything to do with this entity.
This includes the InterfaceType and EntityType that can be used for interacting with the data held by this type
EntityDefinitionOldInfoAttribute
This marks entities with old tablenames, itemnames or setnames.
These are used to create functions and the table in the database. If they are changed in the EntityDefinitionAttribute attribute, then the old values need to be added to htis attribute so the system knows what to rename
EntityDescriptionAttribute
Provides a user friendly description of the property or field
This description is provided as a tooltip throughout the UI where appropriate
EntityHasPivotAttribute
Indicates this entity contains information held in a sub table that can be pivotted and displayed against this record too.
This will ensure exports, and imports will allow reference to the pivotted values against this entity record too
EntityIncludeInIndexAttribute
Appends the specified columns as ones which should be included in the specified index.
EntityIndexAttribute
Specifies an index to be created on the table for this entity
EntityKeyPropertyAttribute
Specifies that this property forms part of the key properties for this entity
Multiple properties can be marked with this attribute to indicate their combination forms the unique key for this entity
Keys are used for importing/exporting and other methods of referring to this entity. The system still holds a globally unique id for each entity regardless - see ID
EntityLinkToAnyParentRelationshipAttribute
Indicates this property holds a relationship link to an id of any entity in the system. There should also be another property holding the type of entity the id links to marked with IsEntityTypeLink
A relationship to the id of a specific entity is marked with EntityRelationshipAttribute
EntityLinkToAnyParentRelationshipModifierAttribute
Modifies a EntityLinkToAnyParentRelationshipAttribute relationship with properties specific to the relationship to this entity
EntityPropertyAttribute
Defines how this property should be handled when maintained as a column in sql server
EntityRelationshipAttribute
Indicates this property holds a relationship that points to another entity in the system
EntitySelfRelationshipAttribute
Indicates this is a relationship that references the same entity
EntitySequenceAttribute
Indicates this property holds the sequence order of the item within the set of items in the collection.
This is automatically used by the UI in grids to have move up/down buttons and take care of updating all properties as items are moved through a sequence
EnumValueAttribute
The value to use for an enum value when selected in algorithms, such as IAnswer.SelectedAnswer
FormulaDefaultValueOnNewAttribute
Indicates this property has a formula that when evaluated provides a default value that should be initialized whenever a new instance of this item is created
HardCodedDefaultValueOnImportAttribute
Indicates this property has a hard coded default value that should be initialized whenever a new instance of this item is created, BUT ONLY when importing.
HardCodedDefaultValueOnNewAttribute
Indicates this property has a hard coded default value that should be initialized whenever a new instance of this item is created
IgnorePropertyInfoAttribute
Can be marked against a property to indicate that it is a simple DTO class that isn't mapped to the database. This prevents the EntityDescriptorFactory from trying to generate Entity Relationships and ColumnDescriptors. Useful for properties that are populated dynamically rather than fetched from the DB.
PivotTableInfo
Holds information about entities that hold pivot information for other entities
PropRelationshipAttribute
The base attribute used for marking that a given property holds a relationship to another entity in the system
Includes attributes about the relationship such as cascade delete options and others
ReplicatedEntityRelationshipAttribute
If this is a descriptor marked to be replicated for each descriptor ( UseForReplicatingDescriptorType), then this relationship indicates this property holds a link to the entity type being replicated.
For example the permissions class uses this to say the IPermission.EntityID property holds a relationshipt to the descriptor it is replicated from.
WebServiceFunctionsAttribute
Marker attribute to create service controller for custom functions.
Enums
EntityID
All system entities in LemonEdge have a hardcoded unique global ID that corresponds to this enum.
The short enum value is translated to a guid using ToShortGuid<T>(T)
Wherever an EntityID is used by LemonEdge, you can also use an actual unique global Guid value. When creating entities in your own code you can keep the IDs as global Guid values for reference
IndexOrder
The order a column should be sorted in for an index