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

Создание карточки по шаблону на сервере

Создание карточки по шаблону на сервере

Создать карточку по шаблону с учетом приложенных файлов можно следующим образом:

var validationResult = new ValidationResultBuilder(); var dbScope = this.UnityContainer.Resolve<IDbScope>(); var cardRepository = this.UnityContainer.Resolve<ICardRepository>(); var tokenProvider = this.UnityContainer.Resolve<IKrTokenProvider>(); var fileManager = this.UnityContainer.Resolve<ICardFileManager>(); var newRequest = new CardNewRequest { CardTypeID = CardHelper.TemplateTypeID }; newRequest.SetTemplateCardID(templateID); // Получение типа карточки или типа документа, если данная опция включена. // Необходимо для явного создания токена. // Если явно создавать токен не нужно, шаг можно опустить. var typeID = KrProcessHelper.GetTemplateDocType(templateID.Value, dbScope); if (!typeID.HasValue) { validationResult.AddError(this, "Не удалось найти тип документа в шаблоне."); return; } // Явное добавление токена в запрос. Необходимо только в том случае, когда // карточку нужно создать, не учитывая правила доступа. // IKrTokenProvider является unity-зависимостью tokenProvider.CreateToken(typeID.Value).Set(newRequest.Info); var newResponse = await cardRepository.NewAsync(newRequest); if (!newResponse.ValidationResult.IsSuccessful()) { return; }

var card = newResponse.Card; card.ID = Guid.NewGuid(); // IFileManager fileManager является unity-зависимостью await using (var container = await fileManager.CreateContainerAsync(card)) { var storeResponse = await container.StoreAsync((c, request) => { tokenProvider.CreateToken(request.Card.ID).Set(request.Card.Info); }); if (!storeResponse.ValidationResult.IsSuccessful()) { return; } }

Back to top