/// <summary>
        /// Notifies contacts via multilanguage templates.
        /// </summary>
        /// <param name="userConnection">User connection.</param>
        /// <param name="parameters">Parameters.</param>
        public virtual void Execute(UserConnection userConnection, IDictionary <string, object> parameters)
        {
            if (EmailWithMacrosManager == null)
            {
                EmailWithMacrosManager = new EmailWithMacrosManager(userConnection);
            }
            EmailData emailData = new EmailData();

            emailData.ParseParameters(parameters);
            if (userConnection.GetIsFeatureEnabled("EmailMessageMultiLanguageV2"))
            {
                SendEmail(emailData, emailData.TplId);
            }
            else
            {
                if (TemplateLoader == null)
                {
                    TemplateLoader = new EmailTemplateStore(userConnection);
                }
                if (EmailTemplateLanguageHelper == null)
                {
                    EmailTemplateLanguageHelper = new EmailTemplateLanguageHelper(emailData.CaseId, userConnection);
                }
                Guid   languageId     = EmailTemplateLanguageHelper.GetLanguageId(emailData.TplId, TemplateLoader);
                Entity templateEntity = TemplateLoader.GetTemplate(emailData.TplId, languageId);
                SendEmail(emailData, templateEntity.PrimaryColumnValue);
            }
        }
コード例 #2
0
        private EmailWithMacrosManager MapManager(string managerName)
        {
            EmailWithMacrosManager manager = DefaultMacrosManager;

            if (IsEmailWithMacrosManagerType(managerName))
            {
                manager = CreateManagerInstace(managerName);
            }
            _managerMap.Add(managerName, manager);
            return(manager);
        }
コード例 #3
0
 public EmailMacrosManagerFactory(UserConnection userConnection, EmailWithMacrosManager defaultManager)
     : this()
 {
     UserConnection       = userConnection;
     DefaultMacrosManager = defaultManager;
 }
コード例 #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EmailMacrosManagerFactory"/> class.
 /// </summary>
 /// <param name="userConnection">The user connection.</param>
 public EmailMacrosManagerFactory(UserConnection userConnection)
     : this()
 {
     UserConnection       = userConnection;
     DefaultMacrosManager = new EmailWithMacrosManager(UserConnection);
 }
 /// <summary>
 /// Send email to recipient.
 /// </summary>
 /// <param name="emailData">Email data container.</param>
 /// <param name="multilangTemplateId">Multilanguage template.</param>
 protected virtual void SendEmail(EmailData emailData, Guid multilangTemplateId)
 {
     EmailWithMacrosManager.SendEmailTo(emailData.CaseId, multilangTemplateId, emailData.Recipient);
 }