Перейти к содержанию

Создание копии карточки на сервере

Создание копии карточки на сервере

Пусть по условию задачи требуется в пределах транзакции на сохранение карточки (например, при завершении задания или нажатии на кнопку) создать копию этой же карточки.

Следующий пример подразумевает код в расширении CardStoreExtension, в методе BeforeCommitTransaction:

// получаем через конструктор расширения: // ICardTemplateManager cardTemplateManager // ICardRepository cardRepositoryWithoutTransaction

var cardCopyRequest = new CardCopyRequest { SourceCardID = args.CardID, SourceCardTypeID = args.CardTypeID, SourceCardTypeName = args.CardTypeName };

var cardCopyResponse = await cardTemplateManager.CopyAsync(cardCopyRequest); if (!cardCopyResponse.ValidationResult.IsSuccessful()) { return; }

cardCopyResponse.Card.TryGetFiles()?.Clear(); var storeRequest = new CardStoreRequest { Card = cardCopyResponse.Card }; var storeResponse = await this.cardRepositoryWithoutTransaction.StoreAsync(storeRequest, context.CancellationToken);

context.ValidationResult.Add(storeResponse.ValidationResult);

Back to top