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

Автоматизированный выбор хранилища для сохраняемого файла

Автоматизированный выбор хранилища для сохраняемого файла

Пусть все файлы с расширением “.docx”, прикладываемые к карточкам договоров (тип карточки Contract), требуется сохранить в хранилище файлов с ID = 5, если в карточке указано подразделение "Sample department". Такого рода правила настраиваются серверными расширениями CardRequestExtension с типом CardRequestTypes.GetFileSource.

using System; using Tessa.Cards; using Tessa.Cards.Extensions;

namespace Tessa.Extensions.Server.Cards { public sealed class SampleFileSourceRequestExtension : CardRequestExtension { public override void AfterRequest(ICardRequestExtensionContext context) { if (!context.RequestIsSuccessful) { return; }

Card card = context.Request.GetCard(); CardFile file = context.Request.GetFile();

if (file.Name.EndsWith(".docx", StringComparison.OrdinalIgnoreCase) && card.DynamicEntries.DocumentCommonInfo.DepartmentName == "Sample department") { context.Response.SetFileSource(new CardFileSourceType(5)); } } } }

Регистрация расширения выполняется следующим образом с указанием типа запроса CardRequestTypes.GetFileSource и типа карточки Contract.

extensionContainer .RegisterExtension<ICardRequestExtension, SampleFileSourceRequestExtension>(x => x .WithOrder(ExtensionStage.AfterPlatform, 1) .WithSingleton() .WhenRequestTypes(CardRequestTypes.GetFileSource) .WhenCardTypes("Contract")) ;

Back to top