Class NextAvailableTime
MDO Provider for identifying available times for meeting.
Inherited Members
Namespace: SuperOffice.CRM.Lists
Assembly: SoDataBase.dll
Syntax
[MDOProviderPlugin("NextAvailableTime")]
[MDOAdditionalInfoSeparator("|")]
[MDOAdditionalInfo("Combined start, end, user ids, separated by | char", "2014-9-14 13:45:22|2014-9-14 14:45:22|0|23,34,45")]
public class NextAvailableTime : LiteralsOnlyBase, ISoListProvider, ISoList
Remarks
AdditionalInfo = "startTime | endTime | isAllDay 0/1 | assocId, assocIds"
Constructors
NextAvailableTime()
MDO Provider for identifying available times for meeting.
Declaration
public NextAvailableTime()
Remarks
AdditionalInfo = "startTime | endTime | isAllDay 0/1 | assocId, assocIds"
Fields
ProviderName
MDO Provider for identifying available times for meeting.
Declaration
public const string ProviderName = "NextAvailableTime"
Field Value
Type | Description |
---|---|
string |
Remarks
AdditionalInfo = "startTime | endTime | isAllDay 0/1 | assocId, assocIds"
SectionKeyDelimiter
Delimiter to use between section name and key name in the additionalInfo parameter. Consider using the CreateAdditionalInfo method to avoid coding dependencies.
Declaration
public const char SectionKeyDelimiter = '|'
Field Value
Type | Description |
---|---|
char |
Remarks
AdditionalInfo = "startTime | endTime | isAllDay 0/1 | assocId, assocIds"
Methods
AddItems()
Subclass contract: use the RawRootItems and RawHeadingItems properties to add items to your literals-only list. The base class will then perform any search or flattening required.
Declaration
protected override void AddItems()
Overrides
Remarks
Lists that only contain literals can be either flat or grouped. If you create a grouped list and the caller specifies a forceFlatList attribute, the base class will do the flattening for you.
Examples
This example shows a typical implementation of a literal list, in this case the date interval list from the Filter dialog:
[MDOProviderPlugin( "FilterFutureDate" )]
public class FilterFutureDateList : LiteralsOnlyBase
{
protected override void AddItems()
{
RawRootItems.Add( new SoListItem( 1, "[SR_DATE_RANGE_3MONTHS]", string.Empty, string.Empty ) );
RawRootItems.Add( new SoListItem( 2, "[SR_DATE_RANGE_4MONTHS]", string.Empty, string.Empty ) );
RawRootItems.Add( new SoListItem( 3, "[SR_DATE_RANGE_6MONTHS]", string.Empty, string.Empty ) );
RawRootItems.Add( new SoListItem( 4, "[SR_DATE_RANGE_1YEAR]", string.Empty, string.Empty ) );
RawRootItems.Add( new SoListItem( 5, "[SR_DATE_RANGE_2YEAR]", string.Empty, string.Empty ) );
}
}
Note that using a search in this case yields unexpected results. The search is performed on the raw items, which contains resource tags - and that is not what you actually want to search against. So resources + search do not go together.
Construct(string, string, int[], bool, string, bool)
Phase two of two-stage list construction. To be called right after the constructor, at which point all constructors have run, and the class hierarchy is initialized.
Declaration
public override void Construct(string listName, string additionalInfo, int[] historyIDs, bool onlyReadHistory, string searchValue, bool forceFlatList)
Parameters
Type | Name | Description |
---|---|---|
string | listName | List name (though note that as implemented by MDOProviderBase, this actually has to be a real table name, so subclasses should override and convert from their list name to a real table name) (yes it's a bit messy) |
string | additionalInfo | Additional information to provider |
int[] | historyIDs | Array of history ID's; if non-null, this will BE the history; a non-null but empty array will disable reading of history altogether; a null parameter will cause history to be read from the database. |
bool | onlyReadHistory | if true, only history will be read. |
string | searchValue | If non-null, the returned list will be flat and only consist of search matches |
bool | forceFlatList | If true, the returned list will be flat, though it will still be filtered if grouping/filtering has been set up for the list |
Overrides
Remarks
AdditionalInfo = "startTime | endTime | isAllDay 0/1 | assocId, assocIds"