コード例 #1
0
        public void Send(EmailTemplate template)
        {
            try
            {
                string templatePath =
                    VirtualPathUtility.ToAbsolute(String.Format("~/files/themes/{0}/templates/{1}",
                                                                GraffitiContext.Current.Theme,
                                                                template.TemplateName));

                templatePath = HttpContext.Current.Server.MapPath(templatePath);

                string body = TemplateEngine.Evaluate(Util.GetFileText(templatePath), template.Context);
                using (MailMessage message = new MailMessage(_settings.EmailFrom, template.To))
                {
                    message.Subject    = template.Subject;
                    message.IsBodyHtml = template.IsHTML;
                    message.Body       = body;
                    SendMailMessage(message);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(Create.New.LogMessage().WithTitle("Could not send e-mail"), ex);
                throw;
            }
        }
コード例 #2
0
        public void TemplateEngineHeyDawgReplacementTest()
        {
            var mapOfVariables = new Dictionary <string, string> {
                { "name", "Cenk" }
            };
            const string expected = "Hello {$Cenk}";
            var          actual   = TemplateEngine.Evaluate("Hello {${$name}}", mapOfVariables);

            Assert.AreEqual(expected, actual);
        }
コード例 #3
0
        public void TemplateEngineHeyDawgLastMultipleReplacementTest()
        {
            var mapOfVariables = new Dictionary <string, string>
            {
                { "firstName", "Cenk" },
                { "lastName", "Civici" }
            };
            const string expected = "Hello Cenk {$Civici}";
            var          actual   = TemplateEngine.Evaluate("Hello {$firstName} {${$lastName}}", mapOfVariables);

            Assert.AreEqual(expected, actual);
        }
コード例 #4
0
        public void TestInlineTemplateWithTemplateFile()
        {
            var emptyEngine = new TemplateEngine().AddFile(GetExampleFilePath("8.lg"));

            Assert.AreEqual(emptyEngine.Evaluate("Hi"), "Hi");
            Assert.AreEqual(emptyEngine.Evaluate("Hi", null), "Hi");
            Assert.AreEqual(emptyEngine.Evaluate("Hi @{name}", new { name = "DL" }), "Hi DL");
            Assert.AreEqual(emptyEngine.Evaluate("Hi @{name.FirstName}@{name.LastName}", new { name = new { FirstName = "D", LastName = "L" } }), "Hi DL");
            Assert.AreEqual(
                emptyEngine.Evaluate(
                    "Hi @{name.FirstName}@{name.LastName} @{RecentTasks()}",
                    new
            {
                name = new
                {
                    FirstName = "D",
                    LastName  = "L"
                }
            }), "Hi DL You don't have any tasks.");
            Assert.AreEqual(
                emptyEngine.Evaluate(
                    "Hi @{name.FirstName}@{name.LastName} @{RecentTasks()}",
                    new
            {
                name = new
                {
                    FirstName = "D",
                    LastName  = "L"
                },
                recentTasks = new[] { "task1" }
            }), "Hi DL Your most recent task is task1. You can let me know if you want to add or complete a task.");
        }
コード例 #5
0
        public void TestBasicInlineTemplate()
        {
            var emptyEngine = new TemplateEngine();

            Assert.AreEqual(emptyEngine.Evaluate("Hi"), "Hi");
            Assert.AreEqual(emptyEngine.Evaluate("Hi", null), "Hi");
            Assert.AreEqual(emptyEngine.Evaluate("Hi @{name}", new { name = "DL" }), "Hi DL");
            Assert.AreEqual(emptyEngine.Evaluate("Hi @{name.FirstName}@{name.LastName}", new { name = new { FirstName = "D", LastName = "L" } }), "Hi DL");
            Assert.AreEqual(emptyEngine.Evaluate("Hi \n Hello", null), "Hi \n Hello");
            Assert.AreEqual(emptyEngine.Evaluate("Hi \r\n Hello", null), "Hi \r\n Hello");
            Assert.AreEqual(emptyEngine.Evaluate("Hi \r\n @{name}", new { name = "DL" }), "Hi \r\n DL");
        }
コード例 #6
0
        /// <summary>
        /// Method to generate text from given template and data.
        /// </summary>
        /// <param name="turnContext">Context for the current turn of conversation.</param>
        /// <param name="template">template to evaluate.</param>
        /// <param name="data">data to bind to.</param>
        /// <returns>generated text.</returns>
        public async Task <string> Generate(ITurnContext turnContext, string template, object data)
        {
            try
            {
                return(await Task.FromResult(engine.Evaluate(template, data).ToString()));
            }
            catch (Exception err)
            {
                if (!string.IsNullOrEmpty(this.Id))
                {
                    throw new Exception($"{Id}:{err.Message}");
                }

                throw;
            }
        }
コード例 #7
0
ファイル: Form1.cs プロジェクト: RepoSecretoAyD/AyD_Examen2
 private void TemplateEngineConvertButton_Click(object sender, EventArgs e)
 {
     try
     {
         var mapInput     = TemplateEngineMapInputTextBox.Text;
         var mapInputList = mapInput.Split(';');
         var dict         =
             mapInputList.Select(inputPair => inputPair.Split(','))
             .ToDictionary(splitInputPair => splitInputPair[0].Trim(),
                           splitInputPair => splitInputPair[1].Trim());
         TemplateEngineOutputTextBox.Text = TemplateEngine.Evaluate(TemplateEngineTextInputTextBox.Text, dict);
     }
     catch (MissingValueException ex)
     {
         MessageBox.Show(ex.Message);
     }
     catch (Exception)
     {
         MessageBox.Show("Invalid input.");
     }
 }
コード例 #8
0
        public void TemplateEngineExceptionTest()
        {
            var mapOfVariables = new Dictionary <string, string>();

            TemplateEngine.Evaluate("Hello {$firstName}", mapOfVariables);
        }