Files
BusinessMgr-2019/SaBusMgrStandardBase/Base/Consoles/SbmEmailConsole.cs
T

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)
{
}
}
//-------------------------------------------------------------------
}
//=======================================================================
}