Работа с сервисом жизненного цикла объектов 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 Используем метод создания карточки по шаблону.