コード例 #1
0
ファイル: Template.cs プロジェクト: dudelis/K2NEServiceBroker
        /// <summary>
        /// Constructor when subject and body are already known.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="lng"></param>
        /// <param name="subj"></param>
        /// <param name="body"></param>
        /// <param name="currentDepth"></param>
        /// <param name="smoSrv"></param>
        public Template(int id, string name, string lng, string subj, string body, int currentDepth, SmoClientHelper smoSrv)
        {
            Id = id;
            Name = name;
            Language = lng;
            Subject = subj;
            Body = body;
            currentDepth++;
            if (currentDepth <= maxDepth)
            {
                Placeholders = new List<string>();
                TemplatePlaceholders = new List<Template>();
                GetPlaceHolders(Subject, ref Placeholders);
                GetPlaceHolders(Body, ref Placeholders);
                TemplatePlaceholders = GetTemplatePlaceholders(Placeholders, currentDepth, smoSrv);
                foreach (Template t in TemplatePlaceholders)
                {
                    if (!String.IsNullOrEmpty(t.Subject))
                    {

                        Subject = ReplaceTemplatePlaceholder(Subject, t.Name, t.Subject);
                    }
                    if (!String.IsNullOrEmpty(t.Body))
                    {
                        Body = ReplaceTemplatePlaceholder(Body, t.Name, t.Body);
                    }
                }
            }
        }
コード例 #2
0
ファイル: Template.cs プロジェクト: dudelis/K2NEServiceBroker
 /// <summary>
 /// Returns the list of placeholders, which reference to other templates.
 /// </summary>
 /// <param name="pHolders"></param>
 /// <param name="smoSrv"></param>
 /// <returns></returns>
 private List<Template> GetTemplatePlaceholders(IEnumerable<string> pHolders, int depth, SmoClientHelper smoSrv)
 {
     List<Template> tList = new List<Template>();
     foreach (var pHolder in pHolders)
     {
         if (pHolder.StartsWith("Template."))
         {
             Template t = new Template(pHolder.Replace("Template.", ""), Language, depth, smoSrv);
             tList.Add(t);
         }
     }
     return tList;
 }
コード例 #3
0
ファイル: Template.cs プロジェクト: dudelis/K2NEServiceBroker
        ///// <summary>
        ///// Sets the public properties Subject and Body
        ///// </summary>
        ///// <param name="smoServer">SmartObjectClientServer with connection</param>
        private void GetSubjectBody(SmoClientHelper smoServer)
        {
            StringBuilder sqlQuery = new StringBuilder();
            sqlQuery.AppendFormat(
                    "SELECT TOP 1 [Id], [EmailSubject], [EmailBody], [TemplateLanguage], [TemplateName] FROM K2Field_K2NE_SMO_EmailTemplate WHERE [TemplateLanguage] = '{0}' AND [TemplateName] = '{1}'",
                    Language, Name);

            DataTable dTable = smoServer.ExecuteSQLQueryDataTable(sqlQuery.ToString());
            if (dTable.Rows.Count == 0) return;
            Subject = dTable.Rows[0]["EmailSubject"].ToString();
            Body = dTable.Rows[0]["EmailBody"].ToString();
        }