コード例 #1
0
 /// <summary>
 /// 设置模板类型
 /// </summary>
 public void SetTemplateType()
 {
     this.TemplateType = TemplatePath.Contains("CodeFirst") ? TemplateType.CodeFirst :
                         TemplatePath.Contains("DbFirst") ? TemplateType.DbFirst : TemplatePath.Contains("Global") ? TemplateType.Global : TemplateType.UnKnow;
 }
コード例 #2
0
ファイル: MailCommand.cs プロジェクト: geji5239/Geji2015
        public override void OnExecute(ICommandContext context, CommandConfig config, CommandResult result)
        {
            var viewResult = result as MailResult;
            var viewModel  = new RazorContentViewModel {
                Parameters = Parameters.CreateDictionary(context)
            };

            try
            {
                if (string.IsNullOrEmpty(TemplatePath))
                {
                    throw LangTexts.Current.GetLangText("9013", "模板没有设置").CreateException();
                }

                if (TemplatePath.Contains("{@"))
                {
                    viewResult.Content = TemplatePath.ReplaceContextParameters(context, viewModel);
                }
                else
                {
                    var template = ContentLib.Current.FolderRoot.GetFile(TemplatePath);
                    if (template == null || (!(template is RazorTemplate)))
                    {
                        throw LangTexts.Current.GetFormatLangText("9011", "模板[{0}]加载失败", TemplatePath).CreateException();
                    }
                    var razorTemplate = template as RazorTemplate;
                    viewResult.Content = razorTemplate.Render(viewModel);
                }


                var title  = Title.ReplaceContextParameters(context, viewModel);
                var sendTo = SendTo.ReplaceContextParameters(context, viewModel);
                var server = GetMailServer();
                if (string.IsNullOrEmpty(sendTo))
                {
                    throw new Exception("邮件接收者不能为空");
                }

                viewResult.Title    = title;
                viewResult.SendTo   = sendTo;
                viewResult.Encoding = Encoding;

                //在Action配置中增加可否为订阅事件的标识,如果有,则在该Action中增加一个MailAction,在该成功执行之后再执行
                if (sendTo.IndexOf(',') > 0 && SendOneByOne)
                {
                    foreach (var to in sendTo.Split(','))
                    {
                        server.SendMail(title, viewResult.Content, to);
                    }
                }
                else if (!string.IsNullOrEmpty(sendTo))
                {
                    server.SendMail(title, viewResult.Content, sendTo);
                }
            }
            catch
            {
                throw;
            }

            result.End(NextCommand);
            context.Execute(NextCommand);
        }