84 lines
3.0 KiB
C#
84 lines
3.0 KiB
C#
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.Helpers;
|
|
using Sarand.Net.Standard.Base.Email;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
|
{
|
|
//=======================================================================
|
|
public class SbmEmailConfig : SaEmailConfig
|
|
{
|
|
public SbmEmailConfig(String context) : base(context)
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
//=======================================================================
|
|
public abstract class SbmEmailConsole : SaEmailConsole
|
|
{
|
|
//-------------------------------------------------------------------
|
|
// Data members.
|
|
|
|
//-------------------------------------------------------------------
|
|
// Protected construction.
|
|
protected SbmEmailConsole(SbmEmailConfig emailConfig)
|
|
{
|
|
EmailConfig = emailConfig;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Properties.
|
|
public SbmEmailConfig EmailConfig { get; }
|
|
public static String EmailTag_Header { get; } = "[#Email.Header]";
|
|
public static String EmailTag_Footer { get; } = "[#Email.Footer]";
|
|
public static String EmailTag_Caption { get; } = "[#Email.Caption]";
|
|
public static String EmailTag_MainStylesheet { get; } = "[#Email.MainStylesheet]";
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>
|
|
/// Replace dynamic tags in email message body.
|
|
/// <para></para>
|
|
/// </summary>
|
|
public void ReplaceDynamicEmailBodyTags(SaEmailData emailData, ISbmUserContext_Core userContext)
|
|
{
|
|
// Replace core tags, eg. main stylesheet.
|
|
SaEmailConsole.ReplaceDynamicEmailTags(emailData);
|
|
|
|
// Replace tags known to the web application.
|
|
// Main stylesheet.
|
|
if (EmailContainsTag(emailData, EmailTag_MainStylesheet))
|
|
{
|
|
// Tag replacement is expanded to avoid reading main stylesheet resource unless required.
|
|
ReplaceDynamicEmailTag(emailData, EmailTag_MainStylesheet, "<style>\n" + SbmResourceHelper.GetResourceText(SbmResourceHelper.TextResource.Email_Main_Css) + "</style>");
|
|
}
|
|
|
|
// Partial content - Header.
|
|
if (EmailContainsTag(emailData, EmailTag_Header))
|
|
{
|
|
// Tag replacement is expanded to avoid reading Header resource unless required.
|
|
ReplaceDynamicEmailTag(emailData, EmailTag_Header, SbmResourceHelper.GetResourceText(SbmResourceHelper.TextResource.Email_Header_Html));
|
|
}
|
|
|
|
// Partial content - Footer.
|
|
if (EmailContainsTag(emailData, EmailTag_Footer))
|
|
{
|
|
// Tag replacement is expanded to avoid reading Footer resource unless required.
|
|
ReplaceDynamicEmailTag(emailData, EmailTag_Footer, SbmResourceHelper.GetResourceText(SbmResourceHelper.TextResource.Email_Footer_Html));
|
|
}
|
|
|
|
// Session data is optional.
|
|
if (userContext != null)
|
|
{
|
|
}
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
|
|
//=======================================================================
|
|
}
|