Exemplo n.º 1
0
        private void ProcessGlobalMacros()
        {
            var globalMacros          = _macrosCollection.Where(m => m.IsGlobal).ToList <MacrosInfo>();
            var globalBulkEmailMacros = globalMacros.Where(x => x.ParentId == Guid.Empty);
            var globalOwnerMacros     = globalMacros.Where(x => x.ParentId != Guid.Empty);
            var result    = new Dictionary <string, string>();
            var arguments = new Dictionary <Guid, Object>();

            if (globalOwnerMacros.Any())
            {
                arguments.Add(MarketingConsts.EmailTemplateMacrosParentGlobalId, _globalMacrosContactId);
                var macrosWithValue = base.GetMacrosValues(globalOwnerMacros, arguments);
                foreach (var macroWithValue in macrosWithValue)
                {
                    result.Add(macroWithValue.Key, macroWithValue.Value);
                }
            }
            if (globalBulkEmailMacros.Any())
            {
                arguments = new Dictionary <Guid, Object>();
                arguments.Add(Guid.Empty, new KeyValuePair <string, Guid>(GlobalMacrosSchemaBulkEmail,
                                                                          _globalBulkEmailId));
                var macrosWithValue = base.GetMacrosValues(globalBulkEmailMacros, arguments);
                foreach (var macroWithValue in macrosWithValue)
                {
                    result.Add(macroWithValue.Key, macroWithValue.Value);
                }
            }
            foreach (var macros in result)
            {
                var globalMergeVar = new merge_var {
                    name    = macros.Key,
                    content = macros.Value
                };
                _globalMergeVars.Add(globalMergeVar);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Returns contact macros.
        /// </summary>
        /// <param name="contactId">Unique identifier of Contact.</param>
        /// <param name="emailRecipient">Email address of recipients.</param>
        /// <param name="bulkEmailId">Unique identifier of BulkEmail.</param>
        /// <returns></returns>
        public rcpt_merge_var GetRecipientMacros(Guid contactId, string emailRecipient, Guid bulkEmailId)
        {
            var personalMacros = _macrosCollection.Where(m => !m.IsGlobal);
            var arguments      = new Dictionary <Guid, Object>();

            arguments.Add(Guid.Empty, new KeyValuePair <string, Guid>(PersonalMacrosSchema, contactId));
            arguments.Add(MarketingConsts.EmailTemplateMacrosParentContactId, contactId);
            var            replaceDictionary = base.GetMacrosValues(personalMacros, arguments);
            rcpt_merge_var personalMergeVar  = new rcpt_merge_var();

            foreach (var macros in replaceDictionary)
            {
                var merge_var_new = new merge_var {
                    name    = macros.Key,
                    content = macros.Value
                };
                personalMergeVar.vars.Add(merge_var_new);
            }
            personalMergeVar.rcpt = emailRecipient;
            int bulkEmailRId = GetBulkEmailRIdFromId(bulkEmailId);

            InitPersonalUnsubscribeMacros(personalMergeVar, bulkEmailRId, bulkEmailId, emailRecipient);
            return(personalMergeVar);
        }