Работа с сервисом жизненного цикла объектов Web-клиента
Рассмотренные в пунктах Реализация методов для работы с карточками из разметок и Реализация методов для работы со строками секций из разметок компоненты, которые позволяют внести изменения в механизмы создания, изменения и удаления карточек и строк секций из разметок, доступны программисту через специальный сервис ILifeCycleServiceEx
. Данный сервис определяет методы:
-
GetCardLifeCycle
— Возвращает реализацию интерфейсаICardLifeCycleEx
для указанного типа карточек. -
GetRowLifeCycle
— Возвращает реализацию интерфейсаIRowLifeCycleEx
для указанной секции.
Следующий код демонстрирует способ получения сервиса ICardLifeCycleEx
и его использования в веб-методе для создания карточки по шаблону:
public class CardServiceController : ApiController
{
private readonly ILifeCycleServiceEx lifeCycleService;
private readonly ICurrentObjectContextProvider currentObjectContextProvider;
public CardServiceController(ILifeCycleServiceEx lifeCycleService, ICurrentObjectContextProvider currentObjectContextProvider) (1)
{
this.lifeCycleService = lifeCycleService;
this.currentObjectContextProvider = currentObjectContextProvider;
}
[HttpGet]
public Guid CreateByTemplate(Guid templateId)
{
var sessionContext = currentObjectContextProvider.GetOrCreateCurrentSessionContext();
var documentCardLifeCycle = lifeCycleService.GetCardLifeCycle(CardDocument.ID); (2)
var newDocumentId = Guid.Empty;
if (templateId != Guid.Empty)
{
newDocumentId = documentCardLifeCycle.Create(sessionContext, new CardCreateLifeCycleOptions()
{
TemplateId = templateId (3)
});
}
return newDocumentId;
}
}
1 | Принимаем требуемый сервис в конструкторе. |
2 | Получаем интерфейс для работы с карточкой типа CardDocument . |
3 | Используем метод создания карточки по шаблону. |