Օրինակ ITemplateSubstitutionService
Բովանդակություն
Օրինակ 1
ITemplateSubstitutionService, IMailService, PostBeforeCommit օգտագործման օրինակ։
Հետևյալ օրինակում մշակված է փաստաթղթի ընդլայնման PostBeforeCommit իրադարձության մշակիչը, որը կանչվում է փաստաթղթի տվյալների պահոցում գրանցվելուց անմիջապես հետո, այդ փաստաթղթի համար հաշվարկվում է տպելու ձևանմուշի լրացվող արժեքները, լրացնում է նախապես որոշված HTML ձևանմուշում, ապա ստեղծում է էլ.նամակ որի մարիմը ձևավորված HTML-ն է և ուղարկվում է այն փաստաթուղթը ստեղծողի էլեկտրոնային հասցեին։
public override async Task PostBeforeCommit(Document document, BeforeCommitEventArgs args)
{
if (document is { Description.DocType: "SOOrder" } orderDocument)
{
var templateCode = "Order_Purchase"; //HTML ձևանմուշ
// ստանում է փաստաթուղթը ստեղծողի էլեկտրոնային հասցեն
var userEmail = await this.parametersService.EmailAddress(orderDocument.CreatorSUID);
// հաշվարկում է տպելու ձևանմուշի լրացվող արժեքները
var ts = await this.templateSubstitutionService.GetReadyTemplateSubstitution(
orderDocument, templateCode, SubstitutionType.HTML, null);
// լրացնում է տպելու ձևանմուշը նախապես հաշվարկված տվյալներով և վերադարձնում որպես HTML ֆորմատի տեքստ,
//որը հանդիսանալու է ուղարկվող հաղորդագրության տեքստ
var body = await this.templateSubstitutionService.LoadSubstituteAndGetContent(
ts.PrintTemplateSubstitution, templateCode, SubstitutionType.HTML);
var mailArgs = new MailArgs()
{
Recipients = [userEmail], // էլ.նամակը ստացողների էլ.հասցեների ցուցակ
Subject = "Ձեր կողմից ստեղծված պատվեր մատակարարին փաստաթուղթը հաստատվել է:", // էլ.նամակի թեման
BodyFormat = BodyFormatSE.Html, // էլ.նամակի տեքստի ձևաչափը
Body = body, // էլ.նամակի մարմինը/տեքստը
};
// ուղարկում է էլ.նամակը
await this.mailService.SendMail(mailArgs);
}
}