Изменение состояния карточки
Пример кода, переводящего карточку группового задания в завершённое состояние:
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 | Разблокируем карточку. |