Механизм порядковой нумерации реализован как сервис, поэтому все методы необходимо вызывать через ObjectSpace.IndexNumerator().

IndexNumerator работает с базой данных в двух режимах – прямые запросы и стандартный XAF. Для использования direct sql, перед вызозовом нужных методов IndexNumerator’a необходимо установить свойство:

 

this.ObjectSpace.IndexNumerator().UseDirectSql = true;

По умолчанию работает XAF

 

.(UseDirectSql = false).

Доступны следующие методы:

 

/// <summary>

/// Применить порядковый номер к объекту(-ам)

/// </summary>

/// <param name="objects">Объект(-ы)</param>

public void Apply(params IIndexNumber[] objects)

/// <summary>

/// Нумерация коллекции объектов, построенной по одному критерию

/// </summary>

/// <param name="obj">Любой объект этой коллекции.</param>

/// <param name="startValue">Начальное значение.</param>

/// <param name="step"> Шаг</param>

public void AdjustByObject(IIndexNumber obj, int? startValue = nullint? step = null)

/// <summary>

/// Пересчет диапазона в коллекции объектов, построенной по одному критерию.

/// Используется при пересчете коллекции в случае, когда пользователем изменяется номер 

/// объекта.

/// </summary>

/// <param name="objectList">Объект, который пересчитывается.</param>

/// <param name="oldIndex">Старое значение.</param>

/// <param name="newIndex"> Шаг</param>

public void AdjustInRangeByObject(IIndexNumberSupport obj, int oldIndex, int newIndex)/// /// /// <summary>

/// Выровнять нумерацию при вставке объекта в коллекцию.

/// </summary>

/// <param name="addingObject">Добавляемый объект.</param>

public void AdjustAfterObject(IIndexNumberSupport addingObject)

/// <summary>

/// Выровнять нумерацию при исключении объекта из коллекции.

/// </summary>

/// <param name="removingObject">Removing object.</param>

public void AdjustAfterRemove(IIndexNumberSupport removingObject)

/// <summary>

/// Переместить объект в начало коллекции.

/// </summary>

/// <param name="movingObject">Object.</param>

public void MoveToTop(IIndexNumberSupport movingObject)

/// <summary>

/// Переместить объект в конец коллекции.

/// </summary>

/// <param name="movingObject">Object.</param>

public void MoveToLast(IIndexNumberSupport movingObject)

/// <summary>

/// Возвращает критерий для объекта из коллекции.

/// </summary>

/// <param name="obj">Объект.</param>

/// <returns></returns>

public CriteriaOperator GetCriteriaByObject(IIndexNumberSupport obj)