Standard Properties
Xomega Framework includes several data properties for standard data types, as described below.
General properties
Below are some general data properties included with the Xomega Framework.
TextProperty
The TextProperty
class stores its value as a string
and converts any value to a string using the Convert.ToString
method.
If you set the Size
of your text property to any positive number, then it will validate that the length of the stored string is no longer than the specified size.
BooleanProperty
The BooleanProperty
class stores its value as a bool?
to allow storing null
values. It can convert the input string to a boolean using various formats, e.g. "true", "1" or "yes" for the true
value, and "false", "0" or "no" for the false
value.
You can customize the list of strings that represent true
or false
values by setting the corresponding static arrays BooleanProperty.TrueStrings
and BooleanProperty.FalseStrings
respectively.
The property value will be always displayed as a string as either "true" or "false" using the ToString
method.
GuidProperty
The GuidProperty
class stores its value as a Guid?
to allow storing null
values. It parses the input string as a Guid
using the standard Guid.TryParse
method, and displays it as a string using the standard ToString
method.
Integer properties
All integer properties in Xomega Framework store their value as a nullable of one of the integer types, as described below.
BigIntegerProperty
The BigIntegerProperty
class validates that the stored value is a long?
between the long.MinValue
and long.MaxValue
.
PositiveBigIntProperty
The PositiveBigIntProperty
class validates that the stored value is between 1
and long.MaxValue
.
IntegerProperty
The IntegerProperty
class validates that the stored value is an int?
between the int.MinValue
and int.MaxValue
.
PositiveIntegerProperty
The PositiveIntegerProperty
class validates that the stored value is between 1
and int.MaxValue
.
SmallIntegerProperty
The SmallIntegerProperty
class validates that the stored value is a short?
between the short.MinValue
and short.MaxValue
.
PositiveSmallIntProperty
The PositiveSmallIntProperty
class validates that the stored value is between 1
and short.MaxValue
.
TinyIntegerProperty
The TinyIntegerProperty
class validates that the stored value is a byte?
between the byte.MinValue
and byte.MaxValue
.
Integer key properties
Xomega Framework defines the following set of marker subclasses of the corresponding integer property that indicate that its value is used as a key of an entity, as opposed to just regular properties.
BigIntegerKeyProperty
- a key property of underlying typelong
.IntegerKeyProperty
- a key property of underlying typeint
.SmallIntegerKeyProperty
- a key property of underlying typeshort
.TinyIntegerKeyProperty
- a key property of the underlying typebyte
.
This allows treating such properties differently in certain scenarios. For example, when adding search criteria by a field that contains integer keys, the corresponding OperatorProperty
will include only equality operators, but not the comparison operators, such as "Less Than" or "Greater Than".
Decimal properties
All decimal properties in Xomega Framework store their value as a decimal?
but may provide some restrictions on the minimum and maximum values, or format the value in a certain way, as described below.
DecimalProperty
The DecimalProperty
class validates that the stored value is between the decimal.MinValue
and decimal.MaxValue
, but you can set your custom MinimumValue
and MaximumValue
. You can also set the MinimumAllowed
and MaximumAllowed
flags on the property to indicate whether the MinimumValue
and MaximumValue
are valid values.
The decimal value can be parsed from a string using the NumberStyles.Number
formats, but you can set the ParseStyles
on the property to your custom styles.
It will use the ToString
method to show the value as a string, but you can also set a custom DisplayFormat
to show it as a DisplayString
using the specified format (but not as an EditString
).
PositiveDecimalProperty
The PositiveDecimalProperty
class validates that the stored value is between 0
and decimal
.MaxValue. You can also set the
MinimumAllowedto
false` for truly positive numbers greater than 0.
MoneyProperty
The MoneyProperty
is a decimal property that displays its value in a currency format for the current culture. It also parses the input string using the NumberStyles.Currency
styles.
PositiveMoneyProperty
The PositiveMoneyProperty
is a money property that validates that the stored amount is not negative. You can also set the MinimumAllowed
to false
for truly positive amounts greater than 0.
PercentProperty
The PercentProperty
is a decimal property that displays its value in a percent format for the current culture.
PercentFractionProperty
The PercentFractionProperty
ensures that its value is between 0 and 1, meaning that it cannot be more than 100%.
Date/time properties
All date/time properties in Xomega Framework store their value as a DateTime?
but may format the value in a certain way, as described below.
DateTimeProperty
The DateTimeProperty
parses the input string using the standard DateTime.TryParse
method, and displays the value as a string using a space-delimited ShortDatePattern
and ShortTimePattern
of the DateTimeFormatInfo.CurrentInfo
. You can specify a custom display format by setting its Format
member though. The property will check that its value is a DateTime
during validation.
DateProperty
The DateProperty
is a date/time property that formats its string value using DateTimeFormatInfo.CurrentInfo.ShortDatePattern
.
TimeProperty
The TimeProperty
is a date/time property that formats its string value using DateTimeFormatInfo.CurrentInfo.ShortTimePattern
.
It can also parse the time of day from a single number, e.g. using a military format such as "1500".
You can set the MinutesCentric
property to true
to treat a number less than 24 as minutes. In this case, for example, "15" would be parsed as "00:15" rather than as "15:00".