Изменение состояния карточки

Пример кода, переводящего карточку группового задания в завершённое состояние:
ObjectContext context = this.LocalContext; (1)

BaseCard taskGroupCard = GetParentCard(); (2)

if (taskGroupCard != null)
{
    if (this.LocalContext.LockObject(taskGroupCard, false)) (3)
    {
        ObjectModel.Services.IStateService stateService = context.GetService<ObjectModel.Services.IStateService>(); (4)

        StatesStateMachineBranch branch = stateService.FindBranchByBuiltIn(TaskGroup.PerformanceToCompletedByCompleteBranch, taskGroupCard.SystemInfo.State); (5)
        if (branch = null)
            return false;

        taskGroupCard.SystemInfo.State = branch.EndState; (6)

        this.LocalContext.SaveObject<BaseCard>(taskGroupCard); (7)

        this.LocalContext.UnlockObject(taskGroupCard); (8)
    }
}
1 Получаем контекст.
2 Получаем карточку.
3 Блокируем карточку.
4 Получаем сервис состояний.
5 Получаем ветку перехода по встроенной ветке перехода.
6 Получаем конечное состояние веки и присваиваем его полю состояния в карточке.
7 Сохраняем карточку группового задания.
8 Разблокируем карточку.